package com.ww.algorithm.sort.exchange;import org.junit.Test;import java.util.Arrays;/*** 鸡尾酒排序:冒泡排序的每一个元素都可以像小气泡一样,根据自身大小,一点一点地向着数组的一侧移动。算法的每一轮都是从左至右来比较元素,进行* 单向的位置交换。那么鸡尾酒排序做了怎样的优化呢?鸡尾酒排序的元素和交换过程是双向的。* 下面举一个例子:有数组[2, 3, 4, 5, 6, 7, 8, 1],希望对其进行从小到大的排序。如果按照冒泡排序的思想去做的话,元素2, 3, 4, 5, 6, 7, 8* 已经是有序的了,只有元素1的位置不对,却还要进行7轮排序!鸡尾酒排序正是要解决这个问题的。* <p>* 鸡尾酒排序过程:* 第1轮:和冒泡排序一样,从左至右依次比较并交换;* 第2轮:反过来,从右至左依次比较并交换;* 第3轮:同第1轮...* 第4轮:同第2轮...* 直到某一轮排序中没有元素进行交换,证明已经有序,排序结束。这就是鸡尾酒排序的思路。排序过程就像钟摆一样,从左至右,从右至左,循环往复直至有序。* <p>* 鸡尾酒排序的优缺点:* 优点:在大部分元素已经有序的情况下,可以减少排序的回合数。* 缺点:代码量几乎增加了1倍。** @author: Sun* @create: 2021-07-20 15:46* @version: v1.0*/
public class CocktailSort {/*** 鸡尾酒排序第一版												

鸡尾酒排序(Cocktail sort)相关推荐

  1. C语言鸡尾酒排序cocktail sort算法(附完整源码)

    鸡尾酒排序cocktail sort算法 鸡尾酒排序cocktail sort算法的完整源码(定义,实现,main函数测试) 鸡尾酒排序cocktail sort算法的完整源码(定义,实现,main函 ...

  2. 经典排序算法 - 鸡尾酒排序Cocktail sort

    经典排序算法 - 鸡尾酒排序Cocktail sort 鸡尾酒排序基于冒泡排序,双向循环 还是看例子吧,给定待排数组[2 3 4 5 1] 第一趟过去时的每一步 第一步迭代,2 < 3不换 [2 ...

  3. 鸡尾酒排序Cocktail Sort

    鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也可以视作选择排序的一种变形),涟漪排序,来回排序or 快乐小时排序,是冒泡排序的一种变形.此算法与冒泡排序的不同处在于排序时是以双向在序列中 ...

  4. 鸡尾酒排序Cocktail Sort(排序算法九)

    1.算法原理 2.代码实现 #include <stdio.h>//printArray打印出数组 void printArray(int a[],int size){ printf(&q ...

  5. 鸡尾酒排序算法c语言,[golang] 数据结构-鸡尾酒排序

    吐个槽 又是一个不正经取名的排序算法.真要说和鸡尾酒间的关系,大概就是想喝到鸡尾酒(得到排序好的队列)就要摇晃酒杯让不同的成分混合均匀(向两个方向冒泡排序) 原理 鸡尾酒排序(Cocktail Sor ...

  6. 鸡尾酒排序算法c语言源代码,排序算法之鸡尾酒排序

    5.3 鸡尾酒排序(Cocktail sort) 既然介绍了冒泡排序.就不得不说一下冒泡排序最为重要的一个变种--鸡尾酒排序(也称为定向冒泡排序).此算法与冒泡排序的不同之处在于鸡尾酒排序是双向进行的 ...

  7. [排序]鸡尾酒排序算法实现

    作者 zhonglihao 算法名 鸡尾酒排序 Cocktail Sort 分类 排序 复杂度 % 大概是1/2 * n^2时间复杂度 形式与数据结构 Matlab代码 特性 来回顺序倒序排序 具体参 ...

  8. 鸡尾酒排序(Cocktail ordering)

    鸡尾酒排序,也叫定向冒泡排序,是冒泡排序的一种改进.此算法与冒泡排序的不同之处在于从低到高排然后从高到低,而冒泡排序则仅从低到高去比较序列中的每个元素,可以得到比冒泡排序稍微好一点的效能. 最差时间复 ...

  9. 经典算法——鸡尾酒排序(冒泡算法改良)

    经典算法--鸡尾酒排序(冒泡算法改良) 文章分类:Java编程 搞开发的人都需要积累一些经典算法,以备不时之须.         搞开发也有好几年了,积累的一些算法一直没做过整理,这段时间无聊就把这些 ...

最新文章

  1. android 课程——样式
  2. OSPF在企业网的应用
  3. c语言常用术语,保证让你大开眼界
  4. [转载]关于申请国外博后的一点经验和想法
  5. english learning websites
  6. 0x5f3759df的数学原理
  7. Delphi 一些函数解释
  8. 用数据说话,Go 所有字符串拼接方式里哪种才是最稳定高效的?
  9. 【百度编辑器ueditor】工具,如何去掉百度编辑器 ueditor 元素路径、字数统计等...
  10. AJPFX关于JDK,JRE,JVM的区别与联系
  11. 第一届佳木斯大学程序设计校赛题解
  12. 实习踩坑之路:日期计算错误,Java8API导致Unsupported unit: Seconds,计算当前时间到凌晨00:00的计算方法
  13. oracle内连接和外连接
  14. 染布厂ERP、染厂ERP、漂染厂ERP、纺织印染ERP生产管理系统
  15. php短信接口开发(http协议)
  16. matlab矩阵求和速度慢,matlab – 将完整矩阵转换为完整矩阵的速度很慢?
  17. linux下chm阅读器kchmviewer中文乱码解决方法
  18. 【.7z 格式文件的压缩、解压】
  19. rootfs bootfs bootloader
  20. 现在seo还好做吗(SEO越来越好做了吗)

热门文章

  1. 计算机作文英语初中,初中书面表达的英语作文(精选5篇)
  2. 星河案例 | 冲量在线助力中国电信打造数据要素融通与AI能力开放外拓新范式
  3. 踩坑 Mac Xcode 与 conio.h windows.h 库(如何解决错误代码:‘conio.h‘ file not found ‘windows.h‘ file not found)
  4. 锁存器(latch)和触发器(flip-flop)的概念与区别
  5. python少儿趣味编程 pdf-趣学python编程
  6. Vue项目利用 i8n 实现国际化
  7. win10系统免U盘安装
  8. Unity3D打包PC运行报DllNotFoundException
  9. 通过vi服务器运行vi,动态改变界面改变VI的属性KCC.ppt
  10. C++编程-scanf的用法