简单数组排序和折半查找

举报
陈言必行 发表于 2021/08/14 01:32:00 2021/08/14
【摘要】 f1(),f2(),f3(),,,分别是三种排序方法,其实平常用的话还是感觉第一个好记忆,三者区别是,运行速度不同,, importjava.util.Scanner; public class sort{public static voidmain(String[] args) {intN=10;int[] a=newint[N];for(inti...
f1(),f2(),f3(),,,分别是三种排序方法,其实平常用的话还是感觉第一个好记忆,三者区别是,运行速度不同,,

      
  1. importjava.util.Scanner;
  2. public class sort{
  3. public static voidmain(String[] args) {
  4. intN=10;
  5. int[] a=newint[N];
  6. for(inti=0;i
  7. a[i]=(int)(Math.random()*(100+0));
  8. }
  9. System.out.println("输出未排序数组");
  10. for(inti=0;i
  11. System.out.print(""+a[i]);
  12. }
  13. f3(a);
  14. System.out.println("输出排序后数组");
  15. for(inti=0;i
  16. System.out.print(a[i]+ " ");
  17. }
  18. Scanner sc=newScanner(System.in);
  19. intx=sc.nextInt();
  20. intn=f4(a,x,N-1);
  21. if(n<0){
  22. System.out.println("没找到您要找的数:"+x);
  23. }else{
  24. System.out.println("您要找的数是:"+x+"在第"+(n+1)+"位");
  25. }
  26. }
  27. public static voidf(int[] a)
  28. { inttemp;
  29. for(inti=0;i
  30. for(intj=a.length-1;j>i;j--){
  31. if(a[j-1]>a[j]){
  32. temp=a[j];
  33. a[j]=a[i];
  34. a[i]=temp;
  35. }
  36. }
  37. }
  38. }
  39. public static voidf2(int [] a){
  40. intk,i,j,tmp=0;
  41. for(i=0;i
  42. k=i;
  43. for(j=i;j
  44. if(a[j]>a[k]){
  45. k=j;
  46. }
  47. }
  48. tmp=a[i];
  49. a[i]=a[k];
  50. a[k]=tmp;
  51. }
  52. }
  53. public static voidf3(int[] a){
  54. inti,j,t;
  55. for(i=1;i
  56. t=a[i];
  57. j=i-1;
  58. while(j>=0&& t
  59. a[j+1]=a[j];
  60. j--;
  61. }
  62. a[j+1]=t;
  63. }
  64. }
  65. public static intf4(int[] a,int x,int n){
  66. intlow,mid,high;
  67. low=0;
  68. high=n;
  69. while(low<=high){
  70. mid=(low+high)/2;
  71. if(x==a[mid]){return mid;
  72. }elseif(x>a[mid]){
  73. low = mid+1;
  74. }else{high =mid-1;}
  75. }
  76. return-1;
  77. }
  78. }



注:此代码小编测试过了,,喜欢请关注,会努力更新更多!

文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/76091279

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。