一、冒泡排序
目的:将数值较大(正对于升序排序)或较小(针对于降序排序)的元素移动到数组的尾部。
(每排依一次只能为一个数找到适当的位置)
需要达到的效果:
第一轮排序:
第二轮排序:
依次递推
例如将某个数组升序排列:
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{
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);