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

营销型网站建设 代理如何用xampp做网站

营销型网站建设 代理,如何用xampp做网站,做网站怎么设置背景,微信管理系统免费版文章目录 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.15wanjia.com/news/172898.html

相关文章:

  • 在线生成个人网站事件营销定义
  • 上海网站seo快速排名电子商务网站开发开题报告
  • 太原seo网站管理包头整站优化
  • 网站的具体内容关于网站开发的商业计划书
  • 国家中职示范校建设专题网站怎么制作营销网站
  • 广州海珠网站开发定制织梦网站怎样上传到ftp
  • 在哪里建网站比较好水印在线制作网站
  • 企业网站首页设计与制作阜阳市城乡建设网站
  • 网站 数据库模板网站建设功能是什么意思
  • 网站开发项目需求分析个人做电影网站服务器放国外安全吗
  • 珍岛做网站怎么样phpcms网站音乐代码存放在什么位置
  • 网站建设多少钱十年乐云seowordpress中文教程
  • 沈阳模板建站wordpress主题设计
  • 公司网站建设开题报告大庆网站优化
  • 阳泉网站设计淘客wordpress
  • 温州网站建设接单湖南网站建设价格
  • 重庆网站建设维护辽宁网站建设排名
  • 深圳做网站的公司排名企业邮箱怎么注册自己的账号
  • 宁波网站建设鲤斯设计网站开发的公司属于什么行业
  • 买链接网站eclipse做网站代码
  • 怎么创建一个属于自己的网站网站开发工程师符号代码
  • 免费做网站百度能录入小程序套餐
  • 网站推广及建设ppt优秀广告设计案例作品欣赏
  • 怎么做公司内网网站上海 网站设计 排名
  • 电商购物网站模板乐华网络公司服务内容
  • 西安网站建设专家网站中文名称注册
  • 做专业课视频课的网站什么是flash网站
  • 外贸营销型网站建设平台一建
  • 做西餐网站网页无法访问公司内网
  • 咸阳市住房和城乡建设规划局网站文创产品设计包括哪些方面