欢迎来到天天文库
浏览记录
ID:41032721
大小:36.00 KB
页数:4页
时间:2019-08-14
《常用排序法C语言编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、冒泡法排序基本思想: 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得
2、到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。C语言程序示例: voidbubble_sort(intarray[],intn) { inti,j,flag,temp; for(i=0;iarray[j+1]) { temp=array[j]; array[j]=array
3、[j+1]; array[j+1]=temp; flag=0; } } if(1==flag) break; printf("%d",i); } return;}插入法排序基本思想: 将n个元素的数列分为已有序和无序两个部分,如下所示: {,{a2,a3,a4,…,an}} {{a1(1),a2(1)},{a3(1),a4(1)…,an(1)}} …{{a1(n-1),a2(n-1),…},{an(n-1)}} 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将
4、该元素插入到有序数列的合适位置中。插入排序算法步骤: 1.从有序数列和无序数列{a2,a3,…,an}开始进行排序; 2.处理第i个元素时(i=2,3,…,n),数列{a1,a2,…,ai-1}是已有序的,而数列{ai,ai+1,…,an}是无序的。用ai与ai-1,ai-2,…,a1进行比较,找出合适的位置将ai插入;3.重复第二步,共进行n-1次插入处理,数列全部有序。程序示例: voidinsertSort(Type*arr,longlen)/*InsertSortalgorithm*/ { longi=0,j
5、=0;/*iteratorvalue*/ TypetmpData; assertF(arr!=NULL,"InInsertSortsort,arrisNULL"); for(i=1;i0&&tmpData6、i,j; inttemp; for(i=1;i=0)&&(array[j]>temp)) { array[j+1]=array[j]; j--; } array[j+1]=temp; } }
6、i,j; inttemp; for(i=1;i=0)&&(array[j]>temp)) { array[j+1]=array[j]; j--; } array[j+1]=temp; } }
此文档下载收益归作者所有