ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言成长之路46:冒泡排序法求极值

2020-08-12 19:00:16  阅读:342  来源: 互联网

标签:10 temp 46 ++ 冒泡排序 C语言 int printf


声明:本笔记基于 B站UP主「来自程序员的暴击」的 「C语言成长之路」中对应课程;

参考理解:三分钟彻底理解冒泡排序


 

原理:从左到右依次使相邻的两个元素进行比较,将较大的元素放右边;

图解:

以上步骤完成了第一次,把极值放到最右边,到第二次循环的时候,又继续从a[0]开始重复上面的步骤,最终获得[0, 1, 2, 3, 4, 5]

求最大值代码:

 1 void bubbleSort(){
 2     /*  冒泡排序法求最大值  */
 3     printf("please enter 10 num to test \n");
 4     int a[10];
 5     for (int i = 0;i < 10;i++){
 6         scanf("%d",&a[i]);              //  循环获取用户输入
 7     }
 8     for (int i = 0;i < 10 - 1;i++){
 9         if(a[i] > a[i + 1]){            //  比较相邻的两个元素,把值更大的元素交换到后面
10             int temp = a[i + 1];        //  选择排序法是先设一个标杆,跟标杆去比较
11             a[i + 1] = a[i];            //  而冒泡排序法则是通过列表中两两进行比较,每次比出最大的一个,如此循环,获得最大(小)的值
12             a[i] = temp;
13         }
14     }
15     printf("a[9] = %d",a[9]);           //  因为这次是求最大值,所以最后一个元素必定是最大的
16 }

 

求最小值代码:

 1 void bubbleSort2(){
 2     /*  冒泡排序法求最小值  */
 3     printf("please enter 10 num to test \n");
 4     int a[10];
 5     for (int i =0;i < 10;i++){
 6         scanf("%d",&a[i]);
 7     }
 8     for (int i = 0;i < 10-1;i++){
 9         if(a[i] < a[i + 1]){
10             int temp = a[i + 1];
11             a[i + 1] = a[i];
12             a[i] = temp;
13         }
14     }
15     printf("a[9] = %d",a[9]);
16 }

 

标签:10,temp,46,++,冒泡排序,C语言,int,printf
来源: https://www.cnblogs.com/akne/p/13492423.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有