冒泡、插入排序、折半查找及结束程序方法

一、冒泡排序

目的:将数值较大(正对于升序排序)或较小(针对于降序排序)的元素移动到数组的尾部。

 (每排依一次只能为一个数找到适当的位置)

需要达到的效果:

第一轮排序:



第二轮排序:



依次递推


例如将某个数组升序排列:

public class ArraySort{

  public static void main(String [] args) {
    int [] array= {23,45,6,34,2,12};
    for(int looptime=1;looptime<array.length;looptime++) {
    for(int i=0;i<array.length-looptime;i++) {
    int now= array[i];
    int next=array[i+1];
    if(now>next) {
    array[i]=next;
    array[i+1]=now;
    }
    }
    for(int data:array) {
    System.out.println(data+" ");
    }
    }

    }

}


二、插入排序

将某个数据插入到已经有序的数组,形成的新数组仍然有序

升级版:将数组第一个看做有序数组,后面皆无序,从而实现数组有序排序

例如:

public class arraysort{


public static void main(String [] args) {
int [] array= {3,52,6,4,819};//升序排列
for(int i=1;i<array.length;i++) {
int sort=array[i];
int j=0;

for(;j<i;j++) {
if(sort<array[j]) {
break;
}
}

if(i==j) {
continue;
}

for(int k=i;k>j;k--) {
array[k]=array[k-1];
}

array[j]=sort;
}
for(int data:array) {
System.out.println(data+" ");
}
}
}

三、折半查找(相对于一个个的查找,提高了效率)

public class ArraySort {


public static void main(String[] args) {

int [] array = {2,5,7,9,13,46};//已知升序或降序的数组
int low =0;
int high = array.length-1;
int temp=88;//要查找的数
while(low<=high) {
int middle =(low+high)/2;
if(temp<array[middle]) {
high =middle-1;
}else if(temp>array[middle]){
low=middle+1;
}else if(temp==array[middle]){
System.out.println(middle);
return;
}
}
System.out.println("没有该数据");//执行到这步说明数组无该元素
}
}

四:结束程序的方法 :

在需要结束的地方插入: System.exit(0);



猜你喜欢

转载自blog.csdn.net/tan_ai/article/details/80276262
今日推荐