C语言简单查找排方法及代码.doc

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

第一部分 查找 线性查找法: import java.util.Scanner; public class SearchDataElement { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int[]array; array=new int[]{8,7,5,4,1,5,9,6,3,4}; for(int i=0;iarray.length;i++) System.out.println(+array[i]); System.out.println(); int replay=0; do{ System.out.print(请输入要查找的数字0-10); int num=scanner.nextInt(); lable:{ for(int t=0;tarray.length;t++) {if(num==array[t]) { System.out.println(array[+t+]=+array[t]); break lable; } } System.out.println(输入的数字数组中不存在); } System.out.println(重新查找1:继续 0:结束?); replay=scanner.nextInt(); }while(replay==1); } } 2、二分查找算法 import java.util.Scanner; public class SearchBinary { public static int searchB(int[]arr,int key) {int low=0; int high=arr.length-1;// while(high=low) { int mid=(low+high)/2; if(keyarr[mid]) high=mid-1; else if(key==arr[mid]) return mid; else low=mid+1; } return-1; } public static void main(String[] args) { // TODO Auto-generated method stub int[]array=new int[]{2,4,7,11,14,25,33,42,55,64,75,88,89,90,92}; int key; Scanner scanner=new Scanner(System.in); System.out.println(\n 请输入关键字:); key=scanner.nextInt(); // int result=searchB(array,key); if(result!=-1) System.out.printf(\n%d found in arrray element %d\n, key,result); else System.out.printf(\n %d not found in array\n,key); } } C语言排序方法 学的排序算法有:插入排序,合并排序,冒泡排序,选择排序,希尔排序,堆排序,快速排序,计数排序,基数排序,桶排序(没有实现)。比较一下学习后的心得。 我不是很清楚他们的时间复杂度,也真的不知道他们到底谁快谁慢,因为书上的推导我确实只是小小了解,并没有消化。也没有完全理解他们的精髓,所以又什么错误的还需要高手指点。呵呵。 1.普及一下排序稳定,所谓排序稳定就是指:如果两个数相同,对他们进行的排序结果为他们的相对顺序不变。例如A={1,2,1,2,1}这里排序之后是A = {1,1,1,2,2} 稳定就是排序后第一个1就是排序前的第一个1,第二个1就是排序前第二个1,第三个1就是排序前的第三个1。同理2也是一样。这里用颜色标明了。不稳定呢就是他们的顺序不应和开始顺序一致。也就是可能会是A={1,1,1,2,2}这样的结果。 2.普及一下原地排序:原地排序就是指不申请多余的空间来进行的排序,就是在原来的排序数据中比较和交换的排序。例如快速排序,堆排序等都是原地排序,合并排序,计数排序等不是原地排序。 3.感觉谁最好,在我的印象中快速排序是最好的,时间复杂度:n*log(n),不稳定排序。原地排序。他的名字很棒,快速嘛。当然快了。我觉得他的思想很不错,分治,而且还是原地排序,省去和很多的空间浪费。速度也是很快的,n*log(n)。但是有一个软肋就是如果已经是排好的情况下时间复杂度就是n*n,不过在加入随机的情况下这种情况也得以好转,而且他可以做任意的比

文档评论(0)

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

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

1亿VIP精品文档

相关文档