#C语言#起泡排序法的总结
2018-06-18 04:20:47来源:未知 阅读 ()
新手小白,代码学习过程中总结一下起泡排序法。
起泡排序法的基本思路:每次将相邻的两个数进行比较,将小的调到前头。
若有6个数:9,8,5,4,2,0
第一次先将最前面的两个数8和9对调,第二次将第二个和第三个数(9和5对调)……如此一共进行五次,得到8,5,4,2,0,9的顺序。
可以看到,大数已沉底,而小数上升。最小的数0已向上浮起一个位置,经过一次比较已经得到最大的数9。
然后进行第二趟比较,对余下的五个数进行新一次的比较。(8,5,4,2,0)进行新一轮的比较,以便使第二大的数沉底。按以上方法进行第二次比较。得到第二大的数8。
按此规律,可以推知,对六个数要比较五次,才能使六个数按大小顺序排列。
第一趟要比较5次,第二趟比较4次……第五趟比较1次。
规律:如果有n个数,则要进行n-1次比较。在第一趟比较中药进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
我将起泡排序写成函数
1 #include<stdio.h> 2 /*========================================================== 3 *函数名称:main() 4 *功 能:主函数 5 *入口参数: 6 *出口参数: 7 *说 明:使用起泡法将给定的数组排序 8 *==========================================================*/ 9 void main() 10 { 11 void qipao_paixu(int num[]); 12 int a[10]={655,23,56,2345,3897,36,478,31,90,208}; 13 int i; 14 printf("原始序列:"); 15 for(i=0;i<10;i++) 16 printf("%5d",a[i]); 17 printf("\n"); 18 printf("起泡法排序\n"); 19 qipao_paixu(a); 20 printf("排序后的序列:"); 21 for(i=0;i<10;i++) 22 printf("%5d",a[i]); 23 24 } 25 /*========================================================== 26 *函数名称:qipao_paixu() 27 *功 能:起泡排序 28 *入口参数: 29 *出口参数: 30 *说 明:对数组中的十个元素进行起泡排序 31 *==========================================================*/ 32 void qipao_paixu(int num[]) 33 { 34 int i,j,temp; 35 for(j=0;j<9;j++)//控制j趟比较 36 for(i=0;i<9-j;i++)//第j趟中,控制n-j次两两比较 37 { 38 if(num[i]>num[i+1])//判断序列中两两相邻数字大小 39 { 40 temp=num[i];//小数向前放,大数沉底 41 num[i]=num[i+1]; 42 num[i+1]=temp; 43 } 44 45 } 46 47 }
经codeblock编译运行
新手小白,还望多指正,以后常总结交流。
Bruce李
2016.6.6
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C语言程序结构 2020-05-31
- C++冒泡排序 (基于函数模板实现) 2020-05-31
- 排序汇总 2020-05-05
- 二叉排序树 2020-05-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash