一、冒泡排序每次遍历中,对两个相邻的元素进行比较交换。
int temp;
for(int i=0;i<array.length-1;i++)
for(int j=0;j<array.length-1-i;j++)
if(array[j]<array[j+1]) {
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
二、选择排序
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
for(int i=0;i<array.length-1;i++) {
int currentMin=array[i],currentMinIndex=i;
for(int j=i+1;j<array.length;j++)
if(currentMin>array[j]) {//找到值最小的元素及其下标
currentMin=array[j];
currentMinIndex=j;
}
if(currentMinIndex!=i) {//进行交换
array[currentMinIndex]=array[i];
array[i]=currentMin;
}
}
三、插入排序
每步将一个待排序的元素,按其值的大小插入前面已经排序的序列,直到全部插入完为止。
for(int i=1;i<array.length;i++) {
int currentElement=array[i],k;
for(k=i-1;k>=0&&array[k]>currentElement;k--)
array[k+1]=array[k];
array[k+1]=currentElement;
}
四、Arrays类
对整个数组排序:
java.util.Arrays.sort(array);
对部分数组排序:
java.util.Arrays.sort(array,1,3);//从array[1]到array[3-1]的部分排序
这个类对于处理数组十分好用,还有其他的方法:
equals:检测连个数组是否相等
java.util.Arrays.equals(array1,array2);//相等返回true
fill:填充整个或部分数组
java.util.Arrays.fill(array, 5);//全部元素都为5
java.util.Arrays.fill(array,1,3,5);//array[1]到array[3-1]的元素全为5