冒泡排序:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

例:arr[]={4,6,5,1,2,8,9};

4  6  5  1  2  8  9;                4和6进行比较,6比4大则顺序不变,

4  6  5  1  2  8  9;              6和5进行比较,6>5,6与5交换位置

4  5  6  1  2  8  9;               6继续和1比较,6>1,6与1交换位置,同理依次与2比较,继续与2交换位置;

4  5  1  2  6  8  9;                6在与8进行比较,6<8,位置不变,

4   5   1  2  6  8  9;               8和9比较,8 < 9,8与9交换位置,确定9为最大的数,第一轮排序结束。

4   5   1  2  6  8  9;              4与5比较,4<5,位置不变,5与1比较,交换位置,与2比较,交换位置,在与6比较,位置不变,6在与8比较,位置不变,确定8的位置,第二轮排序结束

4  1  2  5  6  8  9;

.........

同理也可确定每个数的位置,

1  2  4  5  6  8  9。

限制条件:一共要进行7轮排序,即为数组元素个数-1;

每一轮排序确定一个元素位置,则每轮排序次数为元素个数-1-确定位置的元素个数。

代码如下:

#include<stdio.h>
void bubble_sort(int arr[],int sz)
{//确定要进行几轮排序;int i = 0;for(i = 0;i < sz - 1;i++){int flag = 1;//假设要排序的数据已经有序//每一轮冒泡排序int j = 0;for(j = 0;j < sz-1-i ; j++){if(arr[ j ] > arr[ j + 1 ]){int tmp = arr[ j ];arr[ j ] = arr[ j +1 ];arr[ j + 1 ] = tmp;flag = 0; //本轮排序的数据不完全有序}}if(flag == 1)      {//本轮数据已经有序。break;    //跳出整个循环}}}int main()
{int arr[]={4,6,5,1,2,8,9};int i = 0;int sz=sizeof(arr) / sizeof(arr[0]);//计算数组元素个数//对arr进行排序,排成升序//arr是数组,我们对数组arr进行传参,实际上传递过去的是数组arr首元素的地址bubble_sort(arr,sz);   //冒泡排序函数for(i = 0;i < sz; i++ ){printf("%d ",arr[i]);}
}

C语言:用冒泡排序对数组进行升序排序相关推荐

  1. c#给定二维数组按升序排序_在数组中按升序对数字进行排序| 8086微处理器

    c#给定二维数组按升序排序 Problem: Write a program in 8086 microprocessor to sort numbers in ascending order in ...

  2. sort() 对数值数组进行升序排序

    实例 对数组 $cars 中的元素按字母进行升序排序: <?php $cars=array("Volvo","BMW","Toyota" ...

  3. (六)使用C++实现冒泡排序,对数组进行升序排序

    指针.数组.函数 案例描述:封装一个函数 void函数,实现冒泡排序? ,对整型数组进行升序排序 #include<iostream> using namespace std; //冒泡排 ...

  4. php sort函数,php sort 函数对数组进行升序排序

    php sort函数对数组进行排序.排序规则是按照数组元素进行升序排序. 基本语法 bool sort(array,sortingtype); 本函数对数组进行排序.当本函数结束时数组单元将被从最低到 ...

  5. c语言指针和函数对数组A升序排序,函数指针作为函数參数,实现冒泡排序的升序排序和降序排序...

    #include #define N 10//定义数组元素个数 int Ascending(int a,int b);//升序排列的函数声明 int Descending(int a,int b);/ ...

  6. (篇三)C语言的冒泡排序多解、选择排序、数组合并、矩阵相加

    文章目录 一.经典冒泡排序与选择排序 二.矩阵相加 三.数组合并 四.卖西瓜问题 C语言是非常锻炼结构化思维的语言,而结构化思维的编程思维非常重要的一点,让我们通过练习C语言实例增强我们的编程思维吧 ...

  7. 冒泡排序:实现数组元素升序排序

    案例:将数组{4,2,8,0,5,7,1,3,9}进行升序排列 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值. 3.重复以 ...

  8. 通过冒泡排序对一个数组进行升序排序

    void bubble_sort(int arr[], int sz) {     int i = 0;        for (i = 0; i < sz - 1; i++)     {    ...

  9. 用c语言编写一个排序函数,c语言 编写一个排序函数,实现对主函数中数组的升序排序....

    满意答案 lsdiddepl91 推荐于 2017.05.23 采纳率:48%    等级:10 已帮助:319人 经典的两个排序: (1)选择排序 #include main() { int a[5 ...

最新文章

  1. 【c语言】蓝桥杯算法提高 3-3求圆面积表面积体积
  2. 1月26日学习内容整理:reverse函数补充,modelform对象补充,form表单参数补充
  3. UIControl事件---iOS-Apple苹果官方文档翻译
  4. 使用adb命令查看Sqlite数据库
  5. html5 jquery mobile,html5 jquery mobile
  6. webservice的css哪里添加,jQuery_XML+XSLT+CSS+JQuery+WebService组建Asp.Net网(2), 3.       更 - phpStudy...
  7. JavaScript 获取 当前日期和三十天以前日期
  8. RuoYiConfig中加入自定义属性值获取不到解决办法?
  9. 关于微软企业库中依赖注入容器Unity两种生成对象的实现
  10. can硬件结构和工作原理_汽车CAN总线工作原理及测量方法详解
  11. 解析百度Apollo自动驾驶平台
  12. Elasticsearc 6.x以后不再支持mapping下多个type
  13. 数字电路专题:常用逻辑门符号
  14. 思科模拟器交换机配置secret和password
  15. 【SpringBoot】38 个常用注解
  16. 判断一个数是不是2的N次方 自己写的土算法
  17. 30天自制操作系统 (一个操作系统的实现)
  18. linux终端如何连接wifi,如何在 Linux 终端中连接使用 WiFi?
  19. OpenFegin(基础)
  20. 开通财付通境外并将申请到的美国运通卡与paypal账户成功绑定

热门文章

  1. MOS管栅级一定不能悬空!!!!
  2. [PS] 1999 寂静岭 Silent Hill
  3. web移动开发技能图谱以及注意事项
  4. yolov5-5.0加入CBAM,SE,CA,ECA注意力机制
  5. 黑色情调电脑桌面主题
  6. 摆脱光棍节给喜欢的人一个爱的主题吧
  7. beini系列_1_U盘引导制作
  8. Python有道翻译2.1版本爬虫实现
  9. 去了家新公司,技术总监不让用 IntelliJ IDEA 想离职了
  10. 快手呆3年,股票3000万!