冒泡排序
冒泡排序是最基本的排序算法,也是排序算法中的经典的算法,也是比较简单、容易理解的算法,而且还可以对其排序过程进行优化。
冒泡排序排序过程总是大数往前放,小数往后放,相当于气泡往上升,所以称作冒泡排序。

  • 算法思想:
    依次比较相邻的两个数,将大数放在前面,小数放在后面,即首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数。此时第1轮结束,如此在第1轮之后位于最后的数必是所有数中自小的。然后使用上一轮的结果重复以上过程,直到所有的数都已经最小时算法结束。
  • 算法实现:
#include <stdio.h>int main(void){int i, j, temp;int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int n = sizeof(arr) / sizeof(int);for(i = n - 1; i >= 0; i--){for(j = 0; j < i; j++){if(arr[j + 1] > arr[j]){temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}for(i = 0; i < n; i++){printf("%d ", arr[i]);}printf("\n");return 0;
}

鸡尾酒排序

  • 算法思想:
    还有一种改进的冒泡排序,算法思想是对要排序的数组进行双向冒泡排序,双向冒泡排序又称为鸡尾酒排序。
  • 算法实现:
#include <stdio.h>void CocktailSort(int *arr, int size);
void PrintArr(int *arr, int size);int main(void){int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int n = sizeof(arr) / sizeof(int);CocktailSort(arr, n);PrintArr(arr, n);return 0;
}void CocktailSort(int *arr, int size){int i, temp;int low, up;low = 0, up = size - 1;while(up > low){for(i = up; i > low; i--){if(arr[i] > arr[i - 1]){temp = arr[i];arr[i] = arr[i - 1];arr[i - 1] = temp;}}low++;for(i = low; i < up; i++){if(arr[i + 1] > arr[i]){temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;}}up--;}
}void PrintArr(int *arr, int size){int i;for(i = 0; i < size; i++){printf("%d ", arr[i]);}printf("\n");
}

冒泡排序和鸡尾酒排序(改进的冒泡排序)相关推荐

  1. 冒泡排序,鸡尾酒排序,选择排序

    冒泡排序 改进 鸡尾酒排序 选择排序 冒泡排序 最好情况:Ο(n) 最坏情况:Ο(n2) 平均情况:Ο(n2) 辅助空间:Ο(C) 稳定性:稳定 冒泡排序是一种简单的算法,它重复地走访过要排序的元素, ...

  2. 排序算法之冒泡排序及鸡尾酒排序

    目录 一.排序算法的分类 二.冒泡排序 1.原始的冒泡排序 2.改进一步的冒泡排序 3.更进一步的冒泡排序 三.鸡尾酒排序 四.完整测试代码 一.排序算法的分类 在介绍排序算法之前,我们先根据时间复杂 ...

  3. python代码实现鸡尾酒排序(双向冒泡排序)

    python代码实现鸡尾酒排序(双向冒泡排序) 鸡尾酒排序是冒泡排序的一种变形.它与冒泡排序的不同之处在于排序时是以双向在序列中进行排序. 鸡尾酒排序的原理跟冒泡排序差不多,只不过冒泡排序每一轮的比较 ...

  4. 数据结构与算法(十六)冒泡排序和鸡尾酒排序

    冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,以将当前序列的最小值交换到当前序列最前端为一轮结束,需要(length-1)轮,感觉数据是一 ...

  5. java-数组排序--冒泡排序、鸡尾酒排序、地精排序

    冒泡排序 冒泡排序的思想是,让依次数组中相邻的数进行比较,如果前一个数比后一个数大,则两数进行交换,大的数就会象泡泡一样慢慢浮在水面上了 见图解 稳定性:稳定 时间复杂度:O(n2) 1 public ...

  6. java冒泡排序_Java冒泡排序,鸡尾酒排序

    人生最大的悲哀就是轻信了别人,否认了自己. 冒泡排序 冒泡排序就是不断对比当前数组下标的值和下一个下标得值,当前下标的值如果大于下一个下标的值,两个值互换. int 鸡尾酒排序 冒泡排序的进阶版,在一 ...

  7. php编写冒泡排序算法_PHP排序算法之冒泡排序(Bubble Sort)实现方法详解

    本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法.分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换 ...

  8. ❤排序算法——冒泡排序,鸡尾酒排序,选择排序❤

    基础和算法是我们不可获取的,掌握这些可以在工作学习中帮助我们更加轻松地完成任务,当然,还有面试(手动狗头

  9. python遍历数组冒泡排序_经典排序算法(冒泡排序,选择排序,插入排序,快速排序,堆排序)python实现...

    最近在复习经典排序算法,自己用python也实现了一下,这里不会涉及到原理(因为网上方法已经很详细啦),就把函数贴上来,可以让大家自己试着运行下,再结合别处的原理也可以更好地理解它们的实现. 如果有错 ...

最新文章

  1. THUWC 2018(游记)
  2. spring装配Bean过程
  3. 总结:详细讲解MapReduce过程(整理补充)
  4. Java HashMap工作原理深入探讨
  5. Silverlight在调用wcf时传输数据过大返回Not Found的解决办法
  6. Android开发六 电话拔号器
  7. SAP CRM WebClient UI Context node expose条件
  8. istio回归「单体应用」对我们的启发
  9. Spring陷阱:事务测试被认为是有害的
  10. Android-AB系统OTA升级介绍
  11. 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
  12. 【报告分享】全面解码美妆消费者心智-阿里妈妈.pdf(附下载链接)
  13. 如何应对当下的 996?
  14. win10 基础之上安装 Linux-Manjaro-Deepin 连夜采坑,快速整理下
  15. php图片发送另一台,PHP从一台服务器将图片发送到另一台服务器并保存
  16. SetupFactory使用
  17. spconv编译与安装
  18. 《道德经》与 (更新中)
  19. 测试小兵成长记:守业容易创业难
  20. 06.Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用

热门文章

  1. 转 使用putty从linux主机上面往windows主机下面拷贝文件
  2. 关于linux特殊重定向的理解
  3. 兆凯综合布线系统简介
  4. spring中关于aop拦截功能的记录
  5. SharpDevelop 开源的 C# IDE ! 和 SharpZipLib
  6. 交换机出现err-disable的原因及解决方法
  7. ISA CMAK 网络访问隔离区
  8. Java 配置C3P0数据连接池存入数据存入数据库出现中文乱码问题
  9. 【Java例题】7.6文件题3-文本文件统计
  10. NOIP2017大爆炸