大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
提起排序,记忆最深刻的就是冒泡法排序,因为这是程序员入门必学的第一个排序算法。
但是冒泡法需要不断地遍历数组,不断地遍历数组,需要消耗更多的时间。
相对于冒泡法,二分法排序的效率相对的更高一些。
public class Bisection {
public static void main(String[] args) {
Integer[] a= {74,81,47,77,48,3,40,34,15,67,4,31,41,54,98,27,84,37,75,38,24,72,9,45,77,43,11,2};
a=new Bisection().order(a);
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}
public Integer[] order(Integer[] a) {
//正序为true(默认),倒序为false
return order(a,true);
}
public Integer[] order(Integer[] a,boolean b) {
int min,max,middle=0,temp,length=a.length;
for(int j=1;j<length;j++)
{
min=0;
max=j-1;
temp=a[j];
while(min<=max) {
middle=(min+max)/2;//b的作用:改变表达式的布尔值,从而控制排列顺序
if(a[middle]<temp==b) {
min=middle+1;
}else
{
max=middle-1;
}
}
for(int i=j;i>min;i–)
{
a[i]=a[i-1];
}
a[middle]=temp;
}
return a;
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234855.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...