1.冒泡排序
思路 : 从第一个数值开始,从左到右依次比较相邻两个数的大小,若左边大于右边,则换位置,直到最大的数值冒到最右边。
依次循环冒泡最大值到右边,直到排序完毕。
代码 :
/** 冒泡排序 */
private static void maopaoSort(int[] array) {
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]) {
// 交换位置
changeIndex(array,j,j+1);
}
}
}
}
2. 选择排序
思路 :每一趟比较出序列中的最小值,并将其放在排号序的序列之后,直到排序完毕。
代码 :
/** 选择排序 */
private static void xuanze(int[] array) {
for(int i = 0; i<array.length-1; i++){
int min = array[i];
int minIndex = i;
for(int j = i+1; j<array.length; j++){
if(min > array[j]) {
min = array[j];
minIndex = j;
}
}
// 交换位置
changeIndex(array, i, minIndex);
}
}