选择排序:依次和其后的元素比较,如果大于就换位。
特点:第一轮比较最小值最前面,第二次比较第一位不必参与比较。
public static void selectSort(int[] arr) {
for(int x=0; x<arr.length-1; x++) {
for(int y=x+1; y<arr.length; y++) {
if(arr[x]>arr[y]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
冒泡排序:相邻的两个元素进行比较,如果符合条件就换位。
特点:最值先出现在最后位,第二次比较,最后不用参与运算;参与比较的元素依次递减。
public static void bubbleSort(int[] arr) {
for(int x=0; x<arr.length; x++) {
for(int y=0; y<arr.length-x-1; y++) {//-x让每次比较的元素减少,-1避免角标越界;
if(arr[y]>arr[y+1]) {
int temp = arr[y];
arr[y] =arr[y+1];
arr[y+1] = temp;
}
}
}
}