标题 | C语言冒泡排序 |
内容 | 冒泡排序基本思想 将n个记录看作按纵向排列,每趟排序时自下至上对每对相邻记录进行比较,若次序不符合要 求(逆序)就交换。每趟排序结束时都能使排序范围内关键字最小的记录象一个气泡一样升到表上端的对应位置,整个排序过程共进行n-1趟,依次将关键字最 小、次小、第三小…的各个记录“冒到”表的第一个、第二个、第三个…位置上。 初态 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟 3812121212121212 2038202020202020 4620382525252525 3846253838383838 7438463838383838 9174384646464646 1291747474747474 2525919191919191 /* Title: 冒泡排序 Author: Li Aimin Date: May 2007 算法功能:冒泡排序算法实现将一个长度为n的线性表r上的所有元素按关键字升序排列。 */ #include<stdio.h> void bubblesort(int r[],int n) { /*elements are stored in r[1] to r[n]*/ int i,j,flag; int temp; flag=1; i=1; while((i<n)&&(flag==1)) /*外循环控制排序的总趟数*/ { flag=0; for(j=n;j>i;j--) /*内循环控制一趟排序的进行*/ if(r[j]<r[j-1]) /*相邻元素进行比较,若逆序就交换*/ { flag=1; temp=r[j]; r[j]=r[j-1]; r[j-1]=temp; } i++; } } /*bubblesort*/ void show(int r[] , int n) { /*elements are stored in r[1] to r[n]*/ int i; for(i=1;i<=n;i++) printf(" %d ",r[i]); printf("n"); } void main() { int a[9201],i; for(i=0;i<9201;i++) a[i]=9201-i; //show(a,100000); bubblesort(a,9200); show(a,9200); } |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。