1.算法原理

2.代码实现

#include <stdio.h>//printArray打印出数组
void printArray(int a[],int size){  printf("数组为:[%d] ",a[0]);  for (int i=1;i<size;i++)  {  printf(" %x ",a[i]);  }  printf("\n");
}void main()
{//a[0]监视哨int  a[10] ={0,9,8,7,6,5,4,3,2,1};int  len=10;int low=1, up=len-1, index=1;while (up > low){for (int i = low; i < up; i++){if (a[i] > a[i + 1]){printf(" %d<-->%d ",a[i],a[i+1]);printArray(a,10);a[0]=a[i];a[i]=a[i+1];a[i+1]=a[0];index = i;}}up = index;for (int j = up; j > low; j--){if (a[j] < a[j - 1]){printf(" %d<-->%d ",a[j],a[j-1]);printArray(a,10);a[0]=a[j];a[j]=a[j-1];a[j-1]=a[0];index = j;}}low = index;}printArray(a,10);}

3.结果

 9<-->8 数组为:[0]  9  8  7  6  5  4  3  2  19<-->7 数组为:[9]  8  9  7  6  5  4  3  2  19<-->6 数组为:[9]  8  7  9  6  5  4  3  2  19<-->5 数组为:[9]  8  7  6  9  5  4  3  2  19<-->4 数组为:[9]  8  7  6  5  9  4  3  2  19<-->3 数组为:[9]  8  7  6  5  4  9  3  2  19<-->2 数组为:[9]  8  7  6  5  4  3  9  2  19<-->1 数组为:[9]  8  7  6  5  4  3  2  9  11<-->2 数组为:[9]  8  7  6  5  4  3  2  1  91<-->3 数组为:[1]  8  7  6  5  4  3  1  2  91<-->4 数组为:[1]  8  7  6  5  4  1  3  2  91<-->5 数组为:[1]  8  7  6  5  1  4  3  2  91<-->6 数组为:[1]  8  7  6  1  5  4  3  2  91<-->7 数组为:[1]  8  7  1  6  5  4  3  2  91<-->8 数组为:[1]  8  1  7  6  5  4  3  2  98<-->7 数组为:[1]  1  8  7  6  5  4  3  2  98<-->6 数组为:[8]  1  7  8  6  5  4  3  2  98<-->5 数组为:[8]  1  7  6  8  5  4  3  2  98<-->4 数组为:[8]  1  7  6  5  8  4  3  2  98<-->3 数组为:[8]  1  7  6  5  4  8  3  2  98<-->2 数组为:[8]  1  7  6  5  4  3  8  2  92<-->3 数组为:[8]  1  7  6  5  4  3  2  8  92<-->4 数组为:[2]  1  7  6  5  4  2  3  8  92<-->5 数组为:[2]  1  7  6  5  2  4  3  8  92<-->6 数组为:[2]  1  7  6  2  5  4  3  8  92<-->7 数组为:[2]  1  7  2  6  5  4  3  8  97<-->6 数组为:[2]  1  2  7  6  5  4  3  8  97<-->5 数组为:[7]  1  2  6  7  5  4  3  8  97<-->4 数组为:[7]  1  2  6  5  7  4  3  8  97<-->3 数组为:[7]  1  2  6  5  4  7  3  8  93<-->4 数组为:[7]  1  2  6  5  4  3  7  8  93<-->5 数组为:[3]  1  2  6  5  3  4  7  8  93<-->6 数组为:[3]  1  2  6  3  5  4  7  8  96<-->5 数组为:[3]  1  2  3  6  5  4  7  8  96<-->4 数组为:[6]  1  2  3  5  6  4  7  8  94<-->5 数组为:[6]  1  2  3  5  4  6  7  8  9
数组为:[4]  1  2  3  4  5  6  7  8  9

鸡尾酒排序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. golang的int64排序_golang sort —— 排序算法

    该包实现了四种基本排序算法:插入排序.归并排序.堆排序和快速排序. 但是这四种排序方法是不公开的,它们只被用于sort包内部使用.所以在对数据集合排序时不必考虑应当选择哪一种排序方法,只要实现了sor ...

  5. c语言sort函数从小到大排序指针,sort排序是从小到大

    java数组排序问题:array.sort()是从小到大排序,别告诉我从i=a.length开始打印然后i.因为数组没变啊,只是打印顺序变Integer [] array=new Integer[]{ ...

  6. linux sort命令 排序,Linux sort排序方法

    在文件的操作过程中,因为文件过多,往往需要进行一下排序,排序方法也就是从小到大排序或者从大到小排序.比如我们从nginx日志中需要找到访问量最长的url,那就需要对请求时间进行一个排序,根据请求时间长 ...

  7. 鸡尾酒排序(Cocktail sort)

    package com.ww.algorithm.sort.exchange;import org.junit.Test;import java.util.Arrays;/*** 鸡尾酒排序:冒泡排序 ...

  8. 奇偶排序(OddEven Sort)----(排序算法十一)

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

  9. javascript排序_鸡尾酒在JavaScript中排序

    javascript排序 Just want the code? Scroll all the way down for two versions of the code: 只需要代码? 一直向下滚动 ...

最新文章

  1. Boosting 简介--A (small) introduction to Boosting
  2. 学爬虫,你敢说你不会 requests 模块
  3. maven基础--IDEA集成
  4. svn: 无法连接主机“127.0.0.1”: 拒绝连接
  5. 16.软件架构设计:大型网站技术架构与业务架构融合之道 --- 个人素质的提升
  6. 汇编语言相关图书推荐
  7. 30个有助于探索Go编程语言的在线资源
  8. Eclipse启动提示“subversive connector discovery”
  9. lua jit android,某LuaJit游戏解密教程~~
  10. maven配置私服后Cannot download sources, 无法下载源码
  11. 2.1MAC协议概述
  12. 【存储】存储基本概念(lun,volume,HBA,DAS,NAS,SAN,iSCSI,IPSAN、存储池和存储卷)
  13. FBG光纤反射器,FTTX网络链路监控的理想光端
  14. 百度,dingding 安装在ubuntu1604
  15. 骨牌问题(DP+矩阵快速幂)
  16. Linux7.3安装yum工具,Red Hat Enterprise Linux 7.3更换CentOS 7 yum源
  17. 稳定渐进稳定,一致有界一致最终有界
  18. 框架分析--框架驱动
  19. C--if else嵌套几种形式总结--不要忘记括号了,养成只要if大括号的习惯
  20. MySQL 查询排名

热门文章

  1. C语言实现用户输入数字输出输入的为几时几分几秒
  2. 功能点(FP)分析详细解释
  3. 植物大战僵尸中文年度版
  4. 计算机图形学【GAMES-101】14、动画(物理模拟、质点弹簧系统、粒子系统、运动学、动作捕捉、欧拉方法)
  5. Linux使用tc模拟网络延迟和丢包
  6. echarts y轴只显示5个刻度_Echarts 双Y轴刻度不一致
  7. 破解大数据孤岛化 SaaS主流厂商共建开放标准
  8. 【UACME】在Win11上的发展
  9. sql server高级查询及更新操作二
  10. Linux学习第九节课