PHP之冒泡排序的优化
来源:互联网 发布:软件项目管理课程设计 编辑:程序博客网 时间:2024/05/21 14:04
冒泡排序是一个常见的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
对于冒泡排序,大家估计都不陌生,工作原理如下:
1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
例如常见的冒泡排序:
下面对其进行优化,设置一个标志,如果这一趟发生了交换,则为true,否则为false。明显如果有一趟没有发生交换,说明排序已经完成。
再做进一步的优化。如果有50个数的数组,仅前面10个无序,后面40个都已排好序且都大于前面10个数字,那么在第一趟遍历后,最后发生交换的位置必定小于10,且这个位置之后的数据必定已经有序了,记录下这位置,第二次只要从数组头部遍历到这个位置就可以了。
阅读全文
0 0
- PHP之冒泡排序的优化
- PHP之冒泡排序的优化
- 数据结构之-------优化的冒泡排序
- 冒泡排序的优化之鸡尾酒
- PHP 之 冒泡排序
- PHP之冒泡排序
- 【PHP】冒泡排序以及优化
- 冒泡排序的优化
- 冒泡排序的优化
- 冒泡排序的优化
- 优化的冒泡排序
- 冒泡排序的优化
- 冒泡排序的优化
- 冒泡排序的优化
- 冒泡排序的优化
- 冒泡排序的优化
- 优化的冒泡排序
- 冒泡排序的优化
- java 多线程学习
- QT5 动态链接库的创建和使用(QT自己做动态库给自己使用)
- pdo连接数据库
- Object Pascal 关键字
- 为了更高效的开发代码,这里列出了一些webstorm的快捷键和zencoding
- PHP之冒泡排序的优化
- Druid数据库连接池的正确姿势
- Lua-cjson -> require(“cjson”) successful, then errors when calling cjson.encode
- Zookeeper原理详解
- Java
- Android ContentProvider 知识点总结
- 287. Find the Duplicate Number
- android 2048游戏、kotlin应用、跑马灯、动画源码
- 【数据结构】红黑树——自平衡二叉搜索树