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

多品牌网站建设wordpress增加知识共享协议

多品牌网站建设,wordpress增加知识共享协议,西安有哪些做网站的公司,做网站必须会编程吗冒泡排序思想基本思想: 冒泡排序#xff0c;类似于水中冒泡#xff0c;较大的数沉下去#xff0c;较小的数慢慢冒起来#xff08;假设从小到大#xff09;#xff0c;即为较大的数慢慢往后排#xff0c;较小的数慢慢往前排。直观表达#xff0c;每一趟遍历#xff0c;…冒泡排序思想基本思想: 冒泡排序类似于水中冒泡较大的数沉下去较小的数慢慢冒起来假设从小到大即为较大的数慢慢往后排较小的数慢慢往前排。直观表达每一趟遍历将一个最大的数移到序列末尾。下图演示排序流程下面是传统冒泡排序写法 时间复杂度O(n^2)public static void bubbleSort(int[] nums) {int length nums.length;for (int i 0; i length; i) {System.out.println(i i);for (int j 0; j 1 length -i; j) {System.out.println(内层循环次数- j);if (nums[j] nums[j 1]) {int tem nums[j];nums[j] nums[j 1];nums[j 1] tem;}}System.out.println(第 i 轮外循环执行);for (Integer integer : nums) {System.out.println(integer);}}}执行下看看效果:第一轮 5次 第二轮 4次第三轮 3次 第四轮 2次 第五轮 1次 第六轮0次但是当我们遇到下面这种序列即 12354 我们只需要排一趟就可以了 而无需后续的循环。初次优化基于这种情况我们给出了下面这种优化。通过增加一个标志位 flag 若在某轮「内循环」中未执行任何交换操作则说明数组已经完成排序直接返回结果即可。public static void bubbleSort1(int[] nums) {int length nums.length;//定义标志位标记已经有序或无序boolean flag false;for (int i 0; i length; i) {System.out.println(i i);flag true;for (int j 0; j 1 length - i; j) {System.out.println(内层循环次数- j);if (nums[j] nums[j 1]) {int tem nums[j];nums[j] nums[j 1];nums[j 1] tem;//交换后对flag置false表示已经处理成有序flag false;}}// 已经排好序了 无需后续循环了if (flag) {break;}System.out.println(第 i 轮外循环执行);for (Integer integer : nums) {System.out.println(integer);}}}在看下执行效果第一轮 5次 第二轮 4次第三轮 3次 第四轮 2次很明显外层减少了循环次数优化后的冒泡排序的最差和平均时间复杂度仍为 O(N^2) 在输入数组 已排序 时达到 最佳时间复杂度 O(N) 。继续优化然而这种优化只能做到某一次已经排好序的时候我们直接跳跳出来基于第一种优化我们得到一种启发当一个数组接近有序的时候我们往往只需要在某一个小范围内排序即可我们可以用一个标记来表示这个范围的下限例如遇到下面的情况然而我们发现每次排序前或排序后数组的后面都有一部分已经有序这时我们只要记下最后一次排下的数组的下标下次排序的时候就可以只排序到此下标位置即可目的就是减少内层循环比较的次数public static void bubbleSort2(int[] nums) {int length nums.length;int index length;//每一次我们找到无序区的上界int maxIndex 0;//定义标志位标记已经有序或无序boolean flag false;for (int i 0; i length; i) {System.out.println(i i);flag true;for (int j 0; j 1 index; j) {System.out.println(内层循环次数- j);if (nums[j] nums[j 1]) {int tem nums[j];nums[j] nums[j 1];nums[j 1] tem;//交换后对flag置false表示已经处理成有序flag false;//注意不要在这里直接将index置为jmaxIndex j 1;}}// 已经排好序了 无需后续循环了if (flag) {break;}//若排序过则将index置为最后一次交换的坐标若没有则表示已经有序index maxIndex;System.out.println(第 i 轮外循环执行);for (Integer integer : nums) {System.out.println(integer);}}}再次执行看看效果第一轮 5次 第二轮 3次第三轮 2次 第四轮 1次很明显内层循环也减少了很多优化后的冒泡排序的最差和平均时间复杂度仍为 O(N^2) 在输入数组 已排序 时达到 最佳时间复杂度 O(1) 。其实还可以再优化 一层外循环 执行2个同级的内循环 正着扫描得到最大值 反着扫描得到最小值总结主要从以下2方面优化了传统的冒泡排序写法// 1、减少外层循环次数// 2、减少内层循环次数
http://www.hkea.cn/news/14405266/

相关文章:

  • 网站运营与管理实验报告设计方案构思和设计过程
  • 物流营销型网站案例平面设计需要用到的软件
  • 西安市城乡建设厅网站动画素材库免费下载
  • dw做网站的导航栏怎么做搭建网站 开源软件
  • 最基本的网络营销站点dede织梦做的网站 栏目页有切换js 怎么循环子栏目 调子栏目
  • 适用于手机的网站怎么建设国家高新区网站建设
  • 如何用wordpress建一个网站百度网站公司信息推广怎么做
  • 电商网站seo公司域名网站做优化外链
  • 如何自己做网站推广淘宝客从零开始网站开发
  • 手机网站生成app客户端东莞大岭山中学
  • 凡科平台网站怎么建设江阴公司做网站
  • 彬县网站一般网站自己可以做播放器吗
  • 爱站小工具计算器巴彦淖尔网站建设公司
  • 郑州做的比较好网站公司吗专业群建设网站
  • 湖南网站营销seo方案设计上海展会2021时间
  • 如何自己免费做网站网站模板免费推荐
  • 蚌埠市建设局网站泰州网站制作哪家好
  • 苏州网站建设logo岱山县建设网站
  • 做商品网站的教学视频教程网站建设的科目
  • 创建网站需要哪些要素前端开发培训找不到工作
  • 品牌红酒的网站建设网站后台从哪里进去
  • 建立网站原则网站降权怎么做
  • 做公司+网站建设价格低百度网站源码优化检测
  • 网站开发项目管理文档模板建设网站需要多少钱济南兴田德润厉害吗
  • 做基本的网站中国建设教育协会网站培训中心
  • 企业网站设计的方案辽宁省正规的男科医院
  • 成品网站nike源码1688安庆市城乡建设网站
  • 服装饰品网站建设宁波seo排名费用
  • 温州学校网站建设新闻营销发稿平台
  • 潍坊大型网站建设平台首页关键词排名