Java提高 - 八大排序方法之其他算法
来源:互联网 发布:淘宝onlyanna 罗晓颖 编辑:程序博客网 时间:2024/06/07 14:49
所谓的八大算法只是通过比较选出的比较简单高效的排序算法,而现实中并不是只有这八种排序算法,还有一些其衍生算法。总体来说并不是这八大算法就是万能的,要看具体情况来实现,根据具体情况选择适合你程序的最优排序算法。
接下来就展示一个八大算法之外的排序算法。鸡尾酒排序,这种算法是冒泡法的衍生算法。首先通过冒泡法吧最大的移动到最后,然后从倒数第二位开始把最小的移动到第一位,然后在移动第二大的到倒数第二位。这样总会把大的往后移动,小的往前移动标记好移动的单元会减少多次比较移动。
原理:将队列分为小序列、乱序和大序列三个部分,通过冒泡法交替的吧小的放入小序列大的放入大序列中,知道乱序中只有一个单元。
要点:分三个序列,交替的通过冒泡法移动乱序中的最大最小位
实现:
/** * 鸡尾酒排序 */public static int[] cocktailSort(int[] src) {// 将最小值排到队尾for (int i = 0; i < src.length / 2; i++) {for (int j = i; j < src.length - i - 1; j++) {if (src[j] > src[j + 1]) {int temp = src[j];src[j] = src[j + 1];src[j + 1] = temp;}System.out.println("交换小" + Arrays.toString(src));}// 将最大值排到队头for (int j = src.length - 1 - (i + 1); j > i; j--) {if (src[j] < src[j - 1]) {int temp = src[j];src[j] = src[j - 1];src[j - 1] = temp;}System.out.println("交换大" + Arrays.toString(src));}System.out.println("第" + i + "次排序结果:" + Arrays.toString(src));}return src;}
0 0
- Java提高 - 八大排序方法之其他算法
- Java提高 - 八大排序方法之基数排序
- Java提高 - 八大排序方法之直接插入排序
- Java提高 - 八大排序方法之希尔排序
- Java提高 - 八大排序方法之冒泡排序
- Java提高 - 八大排序方法之快速排序
- Java提高 - 八大排序方法之直接选择排序
- Java提高 - 八大排序方法之堆排序
- Java提高 - 八大排序方法之归并排序
- java八大排序算法之冒泡排序
- Java八大排序算法之希尔排序
- java八大排序算法之冒泡排序
- Java八大排序算法之选择排序
- Java开发之八大排序算法
- 八大排序算法之-基数排序 java代码
- java八大排序算法
- 八大排序算法Java
- 八大排序算法Java
- C++ STACK 入门
- memcache原理
- MySQL笔记 操作,修改数据表、约束
- 面向对象的三个基本元素,五个基本原则
- FreeLibraryAndExitThread DLL中线程的安全退出
- Java提高 - 八大排序方法之其他算法
- C++ 文件读写
- github命令行提交工程到网站中(二)
- 黑盒测试和白盒测试
- Andriod SDK和Loadrunner的HTTP协议测试环境搭建
- Notepad++搭配MinGW编译运行C/C++程序
- hdu 3037 Saving Beans 组合数取模模板题。。
- 用JAVA正则表达式 删除字符串的特定子串
- 【Live Archive】7148 - LRIP【2014上海区域现场赛L】【树分治+线段树】