鸡尾酒排序Cocktail Sort(排序算法九)
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(排序算法九)相关推荐
- C语言鸡尾酒排序cocktail sort算法(附完整源码)
鸡尾酒排序cocktail sort算法 鸡尾酒排序cocktail sort算法的完整源码(定义,实现,main函数测试) 鸡尾酒排序cocktail sort算法的完整源码(定义,实现,main函 ...
- 经典排序算法 - 鸡尾酒排序Cocktail sort
经典排序算法 - 鸡尾酒排序Cocktail sort 鸡尾酒排序基于冒泡排序,双向循环 还是看例子吧,给定待排数组[2 3 4 5 1] 第一趟过去时的每一步 第一步迭代,2 < 3不换 [2 ...
- 鸡尾酒排序Cocktail Sort
鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也可以视作选择排序的一种变形),涟漪排序,来回排序or 快乐小时排序,是冒泡排序的一种变形.此算法与冒泡排序的不同处在于排序时是以双向在序列中 ...
- golang的int64排序_golang sort —— 排序算法
该包实现了四种基本排序算法:插入排序.归并排序.堆排序和快速排序. 但是这四种排序方法是不公开的,它们只被用于sort包内部使用.所以在对数据集合排序时不必考虑应当选择哪一种排序方法,只要实现了sor ...
- c语言sort函数从小到大排序指针,sort排序是从小到大
java数组排序问题:array.sort()是从小到大排序,别告诉我从i=a.length开始打印然后i.因为数组没变啊,只是打印顺序变Integer [] array=new Integer[]{ ...
- linux sort命令 排序,Linux sort排序方法
在文件的操作过程中,因为文件过多,往往需要进行一下排序,排序方法也就是从小到大排序或者从大到小排序.比如我们从nginx日志中需要找到访问量最长的url,那就需要对请求时间进行一个排序,根据请求时间长 ...
- 鸡尾酒排序(Cocktail sort)
package com.ww.algorithm.sort.exchange;import org.junit.Test;import java.util.Arrays;/*** 鸡尾酒排序:冒泡排序 ...
- 奇偶排序(OddEven Sort)----(排序算法十一)
1.算法原理 2.代码实现 #include <stdio.h>//printArray打印出数组 void printArray(int a[],int size){ printf(&q ...
- javascript排序_鸡尾酒在JavaScript中排序
javascript排序 Just want the code? Scroll all the way down for two versions of the code: 只需要代码? 一直向下滚动 ...
最新文章
- Boosting 简介--A (small) introduction to Boosting
- 学爬虫,你敢说你不会 requests 模块
- maven基础--IDEA集成
- svn: 无法连接主机“127.0.0.1”: 拒绝连接
- 16.软件架构设计:大型网站技术架构与业务架构融合之道 --- 个人素质的提升
- 汇编语言相关图书推荐
- 30个有助于探索Go编程语言的在线资源
- Eclipse启动提示“subversive connector discovery”
- lua jit android,某LuaJit游戏解密教程~~
- maven配置私服后Cannot download sources, 无法下载源码
- 2.1MAC协议概述
- 【存储】存储基本概念(lun,volume,HBA,DAS,NAS,SAN,iSCSI,IPSAN、存储池和存储卷)
- FBG光纤反射器,FTTX网络链路监控的理想光端
- 百度,dingding 安装在ubuntu1604
- 骨牌问题(DP+矩阵快速幂)
- Linux7.3安装yum工具,Red Hat Enterprise Linux 7.3更换CentOS 7 yum源
- 稳定渐进稳定,一致有界一致最终有界
- 框架分析--框架驱动
- C--if else嵌套几种形式总结--不要忘记括号了,养成只要if大括号的习惯
- MySQL 查询排名