简单数组排序和折半查找
【摘要】
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(),,,分别是三种排序方法,其实平常用的话还是感觉第一个好记忆,三者区别是,运行速度不同,,
-
importjava.util.Scanner;
-
-
public class sort{
-
public static voidmain(String[] args) {
-
intN=10;
-
int[] a=newint[N];
-
for(inti=0;i
-
a[i]=(int)(Math.random()*(100+0));
-
}
-
System.out.println("输出未排序数组");
-
for(inti=0;i
-
System.out.print(""+a[i]);
-
}
-
f3(a);
-
System.out.println("输出排序后数组");
-
for(inti=0;i
-
System.out.print(a[i]+ " ");
-
}
-
Scanner sc=newScanner(System.in);
-
intx=sc.nextInt();
-
intn=f4(a,x,N-1);
-
if(n<0){
-
System.out.println("没找到您要找的数:"+x);
-
}else{
-
System.out.println("您要找的数是:"+x+"在第"+(n+1)+"位");
-
}
-
}
-
public static voidf(int[] a)
-
{ inttemp;
-
for(inti=0;i
-
for(intj=a.length-1;j>i;j--){
-
if(a[j-1]>a[j]){
-
temp=a[j];
-
a[j]=a[i];
-
a[i]=temp;
-
}
-
}
-
}
-
}
-
public static voidf2(int [] a){
-
intk,i,j,tmp=0;
-
for(i=0;i
-
k=i;
-
for(j=i;j
-
if(a[j]>a[k]){
-
k=j;
-
}
-
}
-
tmp=a[i];
-
a[i]=a[k];
-
a[k]=tmp;
-
}
-
}
-
public static voidf3(int[] a){
-
inti,j,t;
-
for(i=1;i
-
t=a[i];
-
j=i-1;
-
while(j>=0&& t
-
a[j+1]=a[j];
-
j--;
-
}
-
a[j+1]=t;
-
}
-
}
-
public static intf4(int[] a,int x,int n){
-
intlow,mid,high;
-
low=0;
-
high=n;
-
while(low<=high){
-
mid=(low+high)/2;
-
if(x==a[mid]){return mid;
-
}elseif(x>a[mid]){
-
low = mid+1;
-
}else{high =mid-1;}
-
}
-
return-1;
-
}
-
}
注:此代码小编测试过了,,喜欢请关注,会努力更新更多!
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/76091279
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)