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

酒店网站建设报价详情金融网站设计方向

酒店网站建设报价详情,金融网站设计方向,关键词优化营销,网站怎么做下载一、冒泡排序法 冒泡排序法 原始数据#xff1a;3 2 7 6 8 第1次循环#xff1a;#xff08;最大的跑到最右边#xff09; 2 3 7 6 8#xff08;3和2比较#xff0c;23 所以2和3交换位置#xff09; 2 3 7 6 8#xff08;3和7比较#xff0c;37 所以不需要交…一、冒泡排序法 冒泡排序法 原始数据3 2 7 6 8 第1次循环最大的跑到最右边 2 3 7 6 83和2比较23 所以2和3交换位置 2 3 7 6 83和7比较37 所以不需要交换位置 2 3 6 7 86和7比较67 所以6和7交换位置 2 3 6 7 87和8比较78 所以不需要交换位置 经过第1次循环此时剩下参与比较的数据2 3 6 7 第2次循环 2 3 6 72和3比较23所以不需要交换位置 2 3 6 73和6比较36所以不需要交换位置 2 3 6 7  (6和7比较67所以不需要交换位置 经过第2次循环此时剩下参与比较的数据是2 3 6 第3次循环 2 3 62和3比较23所以不需要交换位置 2 3 63和6比较36所以不需要交换位置 经过第3次循环此时剩下参与比较的数据是2 3 第4次循环 2 32和3比较23所以不需要交换位置 public class BubbleSort{ public static void main(String[] args){ //这是int类型的数组对象 int[] arr {3,2,6,7,8}; //经过冒泡排序算法对以上数组中元素进行排序 //冒泡排序算法的核心是什么 //7条数据循环6次。以下的代码可以循环6次冒泡排序法采用外层循环 int count 0; for(int iarr.length-1;i0;i--){ //不管是否需要交换总之是要比较一次的 count; //9 8 10  7 6 0 11 for(int j0;jij){ if(arr[i]arr[j1]){ //交换位置 //arr[j]和arr[j1]交换 int temp; temp arr[j]; arr[j] arr[j1]; arr[j1] temp; } } } System.out.println(比较次数:”count); //输出结果 for(int i0;iarr.length;i){ System.out.println(arr[i]); } } } 二、选择排序法 选择排序法比冒泡排序法的效率高 高在交换位置上 选择排序的交换位置是有意义的 每一次从这“堆”参与比较的数据当中“找出最小值” 拿这个最小值和“参与比较的这堆最前面的元素”交换位置 循环一次然后找出参加比较的这堆数据中最小的。拿这个最小的值和 最前面的数据交换位置。 参与比较的数据3 1 6 2 5 第1次循环之后的结果是 1 3 6 2 5 下次参与比较的数据3 6 2 5 第2次循环之后的结果是2 6 3 5 下次参与比较的数据是6 3 5 第3次循环之后的结果是3 6 5 下次参与比较的数据是 6 5 第4次循环之后的结果是 5 6 注意5条数据循环4次 冒泡排序和选择排序实际上比较的次数没变 交换位置的次数减少了 3 2 6 1 5 假设 第1个3是最小的 3和2比较发现2更小所以此时最小的是2 继续拿着2往下比对2和6比较2仍然是最小的 继续拿着2往下比对2和1比对发现1更小所以此时最小的是1 继续拿着1往下比对1和5比对发现1还是小的所以1就是最小的 拿着1和最左边的3交换位置 2 6 3 5 假设 第1个2是最小的 …… 6 3 5 假设6是最小的6和3比对发现3更小所以此时最小的是3 …… public class SelectSort{ public static void main(String[] args){ int[] arr {3,1,6,2,5}; int count 0; //选择排序 //5个数据循环4次外层循环4次 for(int i0;iarr.length-1;i){ //i的值是0 1 2 3 //i正好是“参加比较的这堆数据中”最左边那个元素的下标 //i是一个参与比较的这堆数据中的起点下标 //假设起点i下标位置上的元素是最小的 int min I; for(int ji1;jarr.length;j){ count; if(arr[j]arr[min]){ min j;   //最小值的元素下标是j  } } //当i和min相等时表示最初猜测是对的 //当i和min不相等时表示最初猜测是错的有比这个元素更小的元素 //需要拿着这个更小的元素和最左边的元素交换位置 if(min!i){ //表示存在更小的数据 //arr[min]最小的数据 //arr[i]最前面的数据 int temp; temp arr[min]; arr[min arr[i]; arr[i] temp; } } System.out.println(比较次数count); //排序之后遍历 for(int i0;iarr.length;i){ System.out.println(arr[i]); } } } 三、二分法查找 数组的元素查找 数组元素查找两种方式 第一种方式一个一个挨着找直到找到为止 第二种方式二分法查找算法这个效率较高 public class ArraySearch{ public static void main(String[] args){ //这个例子演示第一种方式 int[] arr {4,5,6,87,8}; //需求找出87的下标。一个一个挨着找 for(int i0;iarr.length;i){ if(arr[i]87){ System.out.println(87元素的下标是i); return; } } //程序执行到此处表示没有87 System.out.println(87不存在该元素); //最好以上的程序封装到一个方法思考传什么参数返回什么值 //传什么第一个参数是数组第二个参数是被查找的元素 //返回值返回被查找的这个元素的下标如果找不到返回-1 int index arraySearch(arr,87); System.out.println(index -1?该元素不存在1:该元素下标是index): } //从数组中检索某个元素的下标返回的是第一个元素的下标 //arr 被检索的数组 //ele 被检索的元素 //大于等于0的数表示元素的下标-1表示该元素不存在 public static void arraySearch(int[] arr,int ele){ for(int i0;iarr.length;i){ if(ele arr[i]){ return I; } } return -1; } } 关于查找算法中的二分法查找 10下标011 12 13 14 15 16 17 18 19 20下标10 arr数组 通过二分法查找找出18这个元素的下标 010/2--中间元素的下标5 拿着中间这个元素和目标要查找的元素进行对比 中间元素是arr[5]--15 1518(被查找的元素 被查找的元素18在目前中间元素15的右边 再重新计算一个中间元素的下标 开始下标是51 结束下标是10 610/2--8 8下标对应的元素arr[8]是18 找到的中间元素正好和被查找的元素18相等表示找到了下标为8 二分法查找的终止条件一直折半直到中间的那个元素恰好是被查找的元素 二分法查找算法是基于排序的基础之上。没有排序的数据是无法查找的 publc class ArrayUtil{ public static void main(String[] args){ int[] arr {100,200,230,235,600,1000,2000,9999); //找出arr这个数据中200所在的下标 //调用方法 int index binarySearch(arr,200); System.out.println(index-1?该元素不存在!:该元素下标”index); } // dest 目标元素 //-1表示该元素不存在其他表示返回该元素的下标 public static void binarySearch(int[] arr,int dest){ //开始下标 int begin 0; //结束下标 int end arr.length-1; //开始元素的下标只要在结束元素下标的左边就有机会继续循环 while(beginend){ //中间元素下标 int mid (beginend)/2; if(arr[mid]dest){ return mid; }else if(arr[mid]dest){ //目标在“中间”的右边 //开始元素下标需要发生变化开始元素的下标需要重新赋值 begin mid 1;  //一直加 }else{ //arr[mid]dest //目标在“中间”的左边 //修改结束元素的下标 end mid -1;  //一直减 } } return -1; } 二分法查找原理 10下标是0 23 56 89 100 111 222 235 500 600下标9arr数组 目标找出600的下标 09/2--4(中间元素的下标 arr[4]这个元素就是中间元素arr[4]是100 100600 说明被查找的元素在100的右边 那么此时开始下标变成41 59/2--7中间元素的下标 arr[7]对应的值是235 235600 说明被查找的元素在235的右边 开始下标有进行了转变71 89/2--8 arr[8]--500 500600 开始元素的下标又发生了变化81 (99)/2--9 arr[9]是600正好和600相等此时找到了
http://www.w-s-a.com/news/806966/

相关文章:

  • 如何设计网站首页网站开发综合技能实训心得体会
  • 用织梦做的网站好用吗w网站链接如何做脚注
  • 东莞做网站公司在哪哪里有网站培训的
  • 做宣传 为什么要做网站那重庆网站建设公司在线联系
  • 网站设计制作售价多少钱制作图片的软件是
  • 网站验证码目录简单带数据库的网站模版
  • 制作网站用c#做前台网站建设专题的意义
  • 广西建设职业技术学院教育网站牡丹区建设局网站
  • 网站后台怎么用ftp打开上海外贸进出口有限公司
  • 淘宝建设网站的意义大学生做那个视频网站
  • 如何提高你的网站的粘性建设银行流水网站
  • 微信h5在哪个网站做泰州专业网站制作公司
  • 现在.net做网站的多吗建设工程造价网
  • pc访问手机网站跳转违法网站开发人员
  • 网站前端做报名框wordpress 启动慢
  • 沈阳做网站客户多吗前端可以做网站吗
  • 网站设计规划书新媒体营销策略分析
  • dw个人网站主页怎么做天津工程信息建设网
  • 顺义做网站的公司网站页面设计基础教程
  • 安阳哪个公司做网站好企业没有做网站有的坏处
  • 网站开发有必要用php框架wordpress分页导航代码
  • wordpress建站seo鞍山制作网站哪家好
  • 网站空间流量查询上海门户网站制作
  • 网站开发技术是什么专业会的加强普法网站和普法网络集群建设
  • 上海建筑网站seo 推广
  • 乌兰察布做网站公司爱站网关键词挖掘工具站长工具
  • 白银网站建设白银申请网站空间怎么做
  • 免费炫酷网站模板网站建设需要用到什么软件有哪些
  • 电商网站开发 文献综述大型网站建设企业
  • 如何在建设部网站补录项目单仁牛商