网站大量收购独家精品文档,联系QQ:2885784924

排序查找算法.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排序查找算法

排序查找算法 一:数组常用排序算法: 1):冒泡排序(Bubble sorting) 算法思想: 相邻2个数比较大小,小者往前移动,一趟比较完后,最小的数冒到最前面,较 大的数(重者)慢慢沉下去,排列到数组的后面.如果有n个数,经过n-1趟比 较,数组中的数便已经排序(升序)的数。 程序代码: void bubble_sort(int arr[],int size) { int temp,flag; int i,j; for(int i=0;isize;i++) { flag=0; for(int j=size-1;ji;j--) { if(arr[j]arr[j-1]) { temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; flag=1; } } if(flag==0)break; } } 2):交换排序(Swap sorting) 算法思想: 第1个元素的值与后面的所有元素的值比较大小,如果其中一个值比第1个值 小,进行交换。领奖类推,再将第2个元素与后面的所有元素比较交换,直到 n-1个元素为止。 程序代码: void swap_sort(int arr[],int size) { int temp; int i,j; for(i=0;isize;i++) for(j=i+1;jsize;j++) if(arr[j]arr[i]) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } 3):选择排序(Select sorting) 算法思想: 交换排序有一个缺点:如果数列后面的数据比前面的数据小,每一趟比较都会 产生多次无谓的交换,浪费系统时间。选择排序的基本思想是:若有n个数,假 设第1位存放最小的数,将此数与后面的所有数进行比较。用下标变量k来记录 最小数所在的元素的下标。一趟比较完成后,将arr[0]与arr[k]进行交换。然后设 第2位存放次小的数,依次类推。 程序代码: void select_sort(int arr[],int size) { int i,j,k; int temp; for(i=0;isize;i++) { k=i; for(j=i+1;jsize;j++) if(arr[j]arr[k]) k=j; if(k!=i) temp=arr[i],arr[i]=arr[k],arr[k]=temp; } } 4):直接插入排序(Insert sorting) 算法思想: 将第1个数视为有序序列,然后依次将后续各数逐个插入到该有序序列中。 程序代码: void insert_sort(int arr[],int size) { int i,j; int temp; for(i=1;isize;i++) { temp=arr[i]; for(j=i-1;j=0;j--) if(temparr[j]) arr[j+1]=arr[j]; else break; arr[j+1]=temp; } } 二:数组的查找算法: 1):顺序查找 算法思想: 依照数组中元素的顺序,依次进行比较,以查找出元素的位置。 程序代码: int SequenceSearch(int arr[],int key,int size) { int i; for(i=0;isize;i++) if(arr[i]==key) return i; return -1; } 2):折半查找 算法思想:这种查找方法是针对已经排序的数组进行的一个查找方式,折半查找极 大的提高了查找的性能,但是它是以排序数组为代价来换的。 程序代码: int BinarySearch(int arr[],i

文档评论(0)

mg60065 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档