选择排序:
public static void selectSort(int[]array){
int tmp;
int minindex;
for(int i=0;i<array.length;i++){//遍历整个数组
minindex=i;
for(int j=i+1;j<array.length ;j++){//遍历array[minindex]之后的数组,
if(array[minindex]>array[j]){//每找到一个比array[minindex]小的数就进行一次交换,这个过程可能交换多次。
tmp=array[minindex];
array[minindex]=array[j];
array[j]=tmp;
}
}
}
}
算法思想;
我们在一个数组当中选出一个最小的元素,然后和第一个元素交换,然后后面再在剩下的找最小的元素,和第二个元素交换。这样最终就可以得到一个有序的序列。
插入排序:
public static void insrtSort(int[] array){
int tmp = 0;
int j;
for(int i = 1;i < array.length;i++){
tmp = array[i];
for(j = i-1;j >= 0;j--){
if(array[j] > tmp){
array[j+1] = array[j];
}else{
break;
}
}
array[j+1] = tmp;// }
}
算法思想:
1.默认序列中的第1个元素是有序的;
2.从下标为1的元素开始,取当前下标i位置处的元素a[i]保存到一个tmp里;
3.对前半部分有序序列的循环遍历,并与tmp比较,直到遇到一个比tmp小的元素,此时的下标为j,那么现在只要对a[j+1]进行赋值tmp即可;
4.将待插入元素的下标 i 向后推移一个位置;
重复进行第2步到第4步,直到乱序序列中的元素被全部插入到有序序列中;
经过以上5个步骤之后,整体序列必然有序,排序完成。