#include<iostream>
using namespace std;void Print(int(&ra)[10])//打印函数
{int i = 0;for (i; i < 10; ++i){cout << ra[i] << " ";}
}
void Swap(int* x, int* y)//交换函数
{*x = *x^*y;*y = *x^*y;*x = *x^*y;
}void BubbleSort(int(&ra)[10])//冒泡排序
{int i = 0;int j = 0;int flag = 1;    //设一个标签,防止已有序的数列再进行排序for (i; i < 10; ++i){for (j = 0; j < 10 - i-1; ++j){if (ra[j]>ra[j + 1]){Swap(&ra[j], &ra[j + 1]);flag = 0;}}if (flag)break;}
}//鸡尾酒排序(定向冒泡排序)
/*算法描述 1.先对数组从左到右进行升序的冒泡排序;
2.再对数组进行从右到左的降序的冒泡排序;
3.以此类推,持续的、依次的改变冒泡的方向,并不断缩小没有排序的数组范围;*/void CocktailSort(int(&ra)[10])
{//解题思路:定义两个标签start和end,一个头标签指向数组 0 号位置,一个尾标签指向最后数组的位置int start = 0;int end = 10 - 1;//定义一个升序函数和一个降序函数,调用完升序函数end--,调用完降序函数start++,//当start小于end时 循环调用它们while (start < end){for (int i = start; i < end; ++i){//升序if (ra[i] > ra[i + 1]){Swap(&ra[i], &ra[i + 1]);}}end--;for (int j = end; j >start; --j){//降序if (ra[j - 1] > ra[j]){Swap(&ra[j - 1], &ra[j]);}}start++;}}int main()
{
int arr[10] = {4,0,8,64,23,5,1,79,4,9};Print(arr);cout << endl;
//  BubbleSort(arr);
//  Print(arr);
//  cout << endl;CocktailSort(arr);Print(arr);}

鸡尾酒排序和冒泡优化相关推荐

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

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

  2. java 鸡尾酒排序_冒泡排序及优化(Java实现)

    向大端冒泡 public class BubbleSort { public static > void sort(T[] arr) { for (int i = 0, len = arr.le ...

  3. 排序(一)冒泡排序、冒泡改进——鸡尾酒排序、选择排序

    1.冒泡排序 冒泡排序是一种极其简单的排序算法,也是我所学的第一个排序算法.它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成.这个 ...

  4. java 鸡尾酒排序_算法渣-排序-冒泡

    没有一身好内功,招式再多都是空;算法绝对是防身必备,面试时更是不可或缺:跟着算法渣一起从零学算法 定义 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 这个算法的名字由来 ...

  5. 数据结构排序算法 内部排序(冒泡、鸡尾酒、选择、简单插入、二分插入、快排、希尔、归并、堆排)C语言实现

    文章目录 排序 冒泡排序 鸡尾酒排序 选择排序: 简单插入排序: 二分插入排序 快速排序: 希尔排序: 归并排序: 堆排序: 排序 点击以下图片查看大图: 冒泡排序 1.比较相邻的元素,如果前一个比后 ...

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

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

  7. 数据结构与算法专题——第九题 鸡尾酒排序

    这篇我们来聊一下鸡尾酒排序,为了知道为啥取名为鸡尾酒,特意看了下百科,见框框的话,也只能勉强这么说了. 要是文艺点的话,可以说是搅拌排序,通俗易懂点的话,就叫"双向冒泡排序",我想 ...

  8. 算法 - 鸡尾酒排序(CocktailShaker_sort)

    目录 引言: 什么是鸡尾酒排序(CocktailShaker_sort)? 鸡尾酒排序的排序原理: 鸡尾酒排序的过程演示: Step 1 : Step 2 : Step 3 : Step 4 : St ...

  9. 数据结构 7 基础排序算法详解 鸡尾酒排序法、了解钟摆排序实现

    前言 上节,我们已经通过对冒泡算法的优化.能够达到我们预想的结果.比较次数的减少.本节将继续在冒泡排序的基础上进行优化.能够达到刚好的效果. 鸡尾酒排序

最新文章

  1. 026_如何在MAC下输入主要国家货币符号?
  2. 肠里细菌“肚里蛔虫”:肠脑研究缘何越来越热
  3. mysql function加速_MySQL - 函数(FUNCTION)
  4. ExtJs xtype一览
  5. Linker Tools Error LNK2001 报错
  6. java date不要秒_java – 比较日期忽略Joda中DateTime的秒和毫秒时刻
  7. RTX5 | 配置文件RTX_Config.h(三)
  8. php图片制作源码,php进行图片裁剪及生成缩略图程序源代码
  9. magento图片处理 Customize Magento’s Image Resize Functionality
  10. html文档不是本地电脑,电脑浏览器打不开本地html文件
  11. python textrank_TextRank算法提取文本摘要
  12. HDU 4387 Stone Game (博弈)
  13. 注册cad中文件未找到html,acad(2014CAD出现未找到acad文件 求解)
  14. linux 动态ip解析,Linux DDNS 动态IP地址解析
  15. DHCP服务以及配置DHCP服务器
  16. 使用cartopy画飞机的航线
  17. HTML中图片和文字的对齐方式
  18. linux安装postgresql
  19. Redis——redis配置与优化
  20. pr电影幕布开场模式怎么做?快来看看这里!

热门文章

  1. PTA实验题:6-2 Tree类的构造函数和成员函数 (10 分)
  2. Andr oid 多窗 口编程
  3. PTA(二十五) 算法设计与分析 第七章 贪心法 7-1 装箱问题 (20 point(s))
  4. Processing互动编程开发实践之动态文字打乱功能(别嫌长,代码多,图片多)
  5. javaweb条形码产生、打印、扫描
  6. 网校系统搭建服务有哪些优势?为什么要试水网校系统开发?
  7. 分享idea中一些好用的插件
  8. 征服上司站稳脚13招
  9. [电表窃电方法] 偷电方法-电表控制器
  10. java dya01 HelloWorld与环境变量