当前位置: 首页 > news >正文

东莞网上推广怎么做seo优化网络推广

东莞网上推广怎么做,seo优化网络推广,食品网站建设方案书,海门工程造价信息网文章目录 1. 递归1.1 递归1.2 递归求阶乘 2. 数组的高级操作2.1 二分查找2.2 冒泡排序2.3 快速排序2.4 Arrays (应用) 1. 递归 1.1 递归 递归的介绍 以编程的角度来看,递归指的是方法定义中调用方法本身的现象把一个复杂的问题层层转化为一个与原问题相似的规模较…

文章目录

  • 1. 递归
    • 1.1 递归
    • 1.2 递归求阶乘
  • 2. 数组的高级操作
    • 2.1 二分查找
    • 2.2 冒泡排序
    • 2.3 快速排序
    • 2.4 Arrays (应用)



在这里插入图片描述


1. 递归

1.1 递归

  • 递归的介绍
    • 以编程的角度来看,递归指的是方法定义中调用方法本身的现象
    • 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
    • 递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算
  • 递归的基本使用
public class MyFactorialDemo2 {public static void main(String[] args) {int sum = getSum(100);System.out.println(sum);}private static int getSum(int i) {//1- 100之间的和//100 + (1-99之间的和)// 99 + (1- 98之间的和)//....//1//方法的作用: 求 1- i 之间和if(i == 1){return 1;}else{return i + getSum(i -1);}}
}
  • 递归的注意事项
    • 递归一定要有出口。否则内存溢出
    • 递归虽然有出口,但是递归的次数也不宜过多。否则内存溢出

1.2 递归求阶乘

  • 案例需求
    • 用递归求5的阶乘,并把结果在控制台输出
  • 代码实现
public class DiGuiDemo01 {public static void main(String[] args) {//调用方法int result = jc(5);//输出结果System.out.println("5的阶乘是:" + result);}//定义一个方法,用于递归求阶乘,参数为一个int类型的变量public static int jc(int n) {//在方法内部判断该变量的值是否是1if(n == 1) {//是:返回1return 1;} else {//不是:返回n*(n-1)!return n*jc(n-1);}}
}

2. 数组的高级操作

2.1 二分查找

  • 二分查找概述
    查找指定元素在数组中的位置时,以前的方式是通过遍历,逐个获取每个元素,看是否是要查找的元素,
    这种方式当数组元素较多时,查找的效率很低
    二分查找也叫折半查找,每次可以去掉一半的查找范围,从而提高查找的效率

  • 需求
    在数组{1,2,3,4,5,6,7,8,9,10}中,查找某个元素的位置


  • 实现步骤
  1. 定义两个变量,表示要查找的范围。默认min = 0 ,max = 最大索引
  2. 循环查找,但是min <= max
  3. 计算出mid的值
  4. 判断mid位置的元素是否为要查找的元素,如果是直接返回对应索引
  5. 如果要查找的值在mid的左半边,那么min值不变,max = mid -1.继续下次循环查找
  6. 如果要查找的值在mid的右半边,那么max值不变,min = mid + 1.继续下次循环查找
  7. 当min > max 时,表示要查找的元素在数组中不存在,返回-1.
  • 代码实现
public class MyBinarySearchDemo {public static void main(String[] args) {int [] arr = {1,2,3,4,5,6,7,8,9,10};int number = 11;//1,我现在要干嘛? --- 二分查找//2.我干这件事情需要什么? --- 数组 元素//3,我干完了,要不要把结果返回调用者 --- 把索引返回给调用者int index = binarySearchForIndex(arr,number);System.out.println(index);}private static int binarySearchForIndex(int[] arr, int number) {//1,定义查找的范围int min = 0;int max = arr.length - 1;//2.循环查找 min <= maxwhile(min <= max){//3.计算出中间位置 midint mid = (min + max) >> 1;//mid指向的元素 > numberif(arr[mid] > number){//表示要查找的元素在左边.max = mid -1;}else if(arr[mid] < number){//mid指向的元素 < number//表示要查找的元素在右边.min = mid + 1;}else{//mid指向的元素 == numberreturn mid;}}//如果min大于了max就表示元素不存在,返回-1.return -1;}
}

注意事项
有一个前提条件,数组内的元素一定要按照大小顺序排列,如果没有大小顺序,是不能使用二分查
找法的


2.2 冒泡排序

  • 冒泡排序概述
    一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序
    如果有n个数据进行排序,总共需要比较n-1次 每一次比较完毕,下一次的比较就会少一个数据参与

  • 代码实现

public class MyBubbleSortDemo2 {public static void main(String[] args) {int[] arr = {3, 5, 2, 1, 4};//1 2 3 4 5bubbleSort(arr);}private static void bubbleSort(int[] arr) {//外层循环控制的是次数 比数组的长度少一次.for (int i = 0; i < arr.length -1; i++) {//内存循环就是实际循环比较的//-1 是为了让数组不要越界//-i 每一轮结束之后,我们就会少比一个数字.for (int j = 0; j < arr.length - 1 - i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}printArr(arr);}private static void printArr(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}
}

2.3 快速排序

  • 快速排序概述
    冒泡排序算法中,一次循环结束,就相当于确定了当前的最大值,也能确定最大值在数组中应存入的位置 快速排序算法中,每一次递归时以第一个数为基准数,找到数组中所有比基准数小的.再找到所有比基准数大的.小的全部放左边,大的全部放右边,确定基准数的正确位置

  • 核心步骤
  1. 从右开始找比基准数小的
  2. 从左开始找比基准数大的
  3. 交换两个值的位置
  4. 红色继续往左找,蓝色继续往右找,直到两个箭头指向同一个索引为止
  5. 基准数归位
  • 代码实现
public class MyQuiteSortDemo2 {public static void main(String[] args) {// 1,从右开始找比基准数小的// 2,从左开始找比基准数大的// 3,交换两个值的位置// 4,红色继续往左找,蓝色继续往右找,直到两个箭头指向同一个索引为止// 5,基准数归位int[] arr = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};quiteSort(arr,0,arr.length-1);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}private static void quiteSort(int[] arr, int left, int right) {// 递归结束的条件if(right < left){return;}int left0 = left;int right0 = right;//计算出基准数int baseNumber = arr[left0];while(left != right){// 1,从右开始找比基准数小的while(arr[right] >= baseNumber && right > left){right--;}// 2,从左开始找比基准数大的while(arr[left] <= baseNumber && right > left){left++;}// 3,交换两个值的位置int temp = arr[left];arr[left] = arr[right];arr[right] = temp;}//基准数归位int temp = arr[left];arr[left] = arr[left0];arr[left0] = temp;// 递归调用自己,将左半部分排好序quiteSort(arr,left0,left-1);// 递归调用自己,将右半部分排好序quiteSort(arr,left +1,right0);}
}

2.4 Arrays (应用)

  • Arrays的常用方法
    在这里插入图片描述

  • 示例代码

public class MyArraysDemo {public static void main(String[] args) {// public static String toString(int[] a) 返回指定数组的内容的字符串表示形式// int [] arr = {3,2,4,6,7};// System.out.println(Arrays.toString(arr));// public static void sort(int[] a) 按照数字顺序排列指定的数组// int [] arr = {3,2,4,6,7};// Arrays.sort(arr);// System.out.println(Arrays.toString(arr));// public static int binarySearch(int[] a, int key) 利用二分查找返回指定元素的索引int [] arr = {1,2,3,4,5,6,7,8,9,10};int index = Arrays.binarySearch(arr, 0);System.out.println(index);//1,数组必须有序//2.如果要查找的元素存在,那么返回的是这个元素实际的索引//3.如果要查找的元素不存在,那么返回的是 (-插入点-1)//插入点:如果这个元素在数组中,他应该在哪个索引上.}
}
  • 工具类设计思想
  1. 构造方法用 private 修饰
  2. 成员用 public static 修饰

在这里插入图片描述

http://www.tj-hxxt.cn/news/89358.html

相关文章:

  • 免费的网站怎么建seo搜索引擎优化工作内容
  • 首页优化的公司网站推广优化招聘
  • 电信100m光纤做网站大型网站建设公司
  • 长沙网站建设q.479185700強百度app营销软件
  • 网站活跃度怎么做北京网站优化实战
  • 网站建设优化培训班com网站域名注册
  • 阿里巴巴上怎样做自己的网站一般的电脑培训班要多少钱
  • 外贸网站和内贸生猪价格今日猪价
  • 人民日报中美关系最新消息抖音seo源码搭建
  • 做网站要的图片斗鱼百度云电脑版网站入口
  • 德州做网站的公司广告投放是做什么的
  • 网站想换域名 如何操作互联网电商平台
  • 教育类网站怎么做营销广告
  • 色情网站是怎么建设的怎么制作小程序
  • 网站系统发生错误兴安盟新百度县seo快速排名
  • 班级网站建设毕业论文淘宝seo 优化软件
  • 门户网站开发软件昆山seo网站优化软件
  • yahoo搜索引擎优化分析
  • 网站建设方案书模板指数工具
  • 南京美容网站建设seo培训网
  • 凡科的模板做网站全部列表支持安卓浏览器软件下载
  • 网站什么时候备案潍坊网站建设解决方案
  • 福州做网站的哪家好seo专员工作容易学吗
  • 建网站做联盟百度网盘pc网页版入口
  • 网站建设中页面源码百度最贵关键词排名
  • 佛山网站免费制作临沂网站建设方案服务
  • 辽阳网站建设学校做个小程序需要花多少钱
  • 做网站选大公司好还是小公司好seo指的是什么
  • 最新网域查询入口南宁seo
  • 10个网站做站群互联网外包公司有哪些