常用排序法C语言编程.doc_第1页
常用排序法C语言编程.doc_第2页
常用排序法C语言编程.doc_第3页
常用排序法C语言编程.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

冒泡法排序基本思想:冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。 由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。C语言程序示例:void bubble_sort(int array,int n) int i,j,flag,temp; for(i = 0; i n-1; i+) flag = 1; for(j = 0; j arrayj+1) temp = arrayj; arrayj = arrayj+1; arrayj+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) 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。插入排序算法步骤:1.从有序数列和无序数列a2,a3,an开始进行排序; 2.处理第i个元素时(i=2,3,n) , 数列a1,a2,ai-1是已有序的,而数列ai,ai+1,an是无序的。用ai与ai-1,a i-2,a1进行比较,找出合适的位置将ai插入; 3.重复第二步,共进行n-1次插入处理,数列全部有序。 程序示例:void insertSort(Type* arr,long len)/*InsertSort algorithm*/ long i=0,j=0;/*iterator value*/ Type tmpData; assertF(arr!=NULL,In InsertSort sort,arr is NULLn); for(i=1;i 0 & tmpData arrj-1) arrj=arrj-1; j-; arrj=tmpData; 比较好的C语言实例:void insertion_sort(int arrayn) int i,j; int temp; for (i = 1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论