目录

原理图

完整的冒泡排序

代码

运行结果

改进的冒泡排序

程序

运行结果


原理图

这个我觉得相对易懂

完整的冒泡排序

代码

  • 升序

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/*升序*/
void p(int a[],int n)
{int i, j, temp;//int flag,m;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}
//        printf("\n第%d趟排序结果:",i+1);
//        for(m=0;m<10;m++){
//            printf("%d  ",a[m]);
//        }}}
int main()
{int a[10],i;srand((unsigned int)time(0));printf("随机生产10个数为:");for(i=0;i<10;i++){a[i]=rand() %10;printf("%d  ",a[i]);}p(a,10);printf("\n排序结果:");for(i=0;i<10;i++){printf("%d  ",a[i]);}return 0;
}
  • 运行结果

改进的冒泡排序

  1. 当某一趟排序之后的排序不存在交换了(如上运行结果第8、9趟),就可以不再循环
  2. 设置flag代表是否交换
  3. 设: 1为交换了   0为未交换
  • 程序

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/*升序*/
void p(int a[],int n)
{int i, j, temp,m;int flag=1;//flag=1表示未完成排序,flag=0表示已完成排序for(i=0;i<n-1 && flag==1;i++){flag=0;     //每趟结束后归零for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;flag=1;}}printf("\n第%d趟排序结果:",i+1);for(m=0;m<10;m++){printf("%d  ",a[m]);}}}
int main()
{int a[10],i;srand((unsigned int)time(0));printf("随机生产10个数为:");for(i=0;i<10;i++){a[i]=rand() %10;printf("%d  ",a[i]);}p(a,10);printf("\n排序结果:");for(i=0;i<10;i++){printf("%d  ",a[i]);}return 0;
}
  • 运行结果

C语言——冒泡排序、改进的冒泡排序相关推荐

  1. c语言 冒泡排序算法,排序算法_冒泡排序改进(c语言实现)

    下面是未经改进的冒泡排序算法: #include #include int a[10] = {1,4,3,5,23,2,45,6,3,5}; main() { int i,j,mid; int len ...

  2. 冒泡排序和鸡尾酒排序(改进的冒泡排序)

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

  3. C语言基础排序算法-冒泡排序

    C语言基础排序算法-冒泡排序 什么是冒泡排序? 顾名思义,这种排序方法就像水中的气泡一样,从底逐渐往上冒,一次前进一步.我们来看一个例子,看看到底是怎么冒泡的.假设有一个数组3,2,5,4,1,我们希 ...

  4. 改进的冒泡排序算法一

    /*** Project Name:Algorithm* File Name:BubbleSortImprove1.java* Package Name:* Date:2017年9月14日上午11:0 ...

  5. 职坐标c语言,C语言编程入门之冒泡排序

    本文主要向大家介绍了C语言编程入门的冒泡排序,冒泡排序是一种简单常用的交换排序方法.希望让大家在C语言编程入门的路上走的更远. 集体实现的算法思路:将待排序记录中第一个记录与第二个记录做比较,如果第一 ...

  6. 冒泡排序算法与改进的冒泡排序算法

    活动地址:CSDN21天学习挑战赛 目录 一.冒泡排序原理 二.冒泡排序流程 三.实例 四.冒泡排序的改进 五.改进的冒泡排序时间性能分析 一.冒泡排序原理 对存放在数组的数据,按从前往后的方向进行多 ...

  7. c语言比较数组中的元素大小,C语言之数组的冒泡排序

    原标题:C语言之数组的冒泡排序 在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如: l 一个保存了班级学号的数组,排序后更容易分区好学 ...

  8. C++实现改进的冒泡排序

    C++实现改进的冒泡排序 冒泡排序法(Bubble Sort),即起泡排序并不能改观普通排序的时间复杂度,还是O(n^2).冒泡排序法是从后往前两两比较,然后遍历整个数组,犹如鱼吐水泡,故起此名.而普 ...

  9. 【C语言深度解剖】冒泡排序你那些不知道的问题!

    C语言在实现冒泡排序时出现的问题 文章目录 C语言在实现冒泡排序时出现的问题 前言 一.冒泡排序是什么? 二.使用步骤 1.简单冒泡排序 2.高级冒泡排序(针对于所有排序) (1)main函数中参数的 ...

最新文章

  1. 做了7年软件工程师,从500多场技术面试中学到了什么?
  2. 【技术干货】如何进行低功耗设计和开发
  3. MIT自然语言处理第三讲:概率语言模型
  4. Apache与Nginx的优缺点比较
  5. 常用知识总结——模板Template
  6. 算法6:只有五行的Floyd最短路算法
  7. 来前端君朋友圈,一起聊前端面试技巧
  8. Access日期、时间函数
  9. 张家口以太坊智能合约开发实战pdf_以太坊2.0:实现可扩展性之路漫长而曲折
  10. 中国第一代***代表人物档案
  11. HYSPLIT 模型 传输轨迹 使用指南
  12. springcloud服务假死
  13. PHP生僻汉字转化为拼音
  14. rl滤波器原理_RL低通滤波器的原理是什么
  15. Android之FileProvider详解
  16. (十一)java.io.File学习进阶及separator、pathSeparator分隔符简介
  17. 基于SuperMap Idesktop 进行白膜拉伸的方式
  18. 解决项目部署到阿里云服务器邮件发送失败的方法
  19. 职场小白新建SSM项目
  20. 理想服务员,重新上岗,你需要服务不?

热门文章

  1. ❤️连续面试失败后,我总结了57道面试真题❤️,如果时光可以倒流...(附答案,建议收藏)
  2. THREE.ShaderMaterial
  3. echarts 中国地图 世界地图
  4. linux执行sh脚本报错的解决办法
  5. MySQL学习之路(一):使用命令行登录mysql的方式
  6. OD学习手记——常用断点
  7. 设计模式 - 装饰器模式
  8. 传统管理软件走在“生死边缘”,突围SaaS向死而生?
  9. luoguP3397 地毯
  10. Day02:基本IO操作