Java 排序

1. 冒泡排序

相邻的元素两两比较,大的往后放,第一次完毕之后,最大值出现了最大索引处。


Java 排序_第1张图片
冒泡排序

外层循环决定比较几大次,内层循环决定了数组内元素之间的比较

需求:
数组元素:{24,69,80,57,13}
请对数组元素进行排序


public static void bubbleSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}

要注意循环中数组的长度的变化第一个length-1是因为只需要比较四次,第二个length-1是为了防止数组的下标越界(arr[j+1),length-i是对应的arr[j]比较的次数的递减。

2. 选择排序

从0索引开始,依次和后面的元素标胶,小的往前方,第一次完毕后,最小值出现在了最小索引处。


Java 排序_第2张图片
选择排序

外层循环决定比较几大次,内层循环决定了数组内元素之间的比较

需求:
数组元素:{24,69,80,57,13}
请对数组元素进行排序


public static void selectSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}

注意外层循环只需要比较length-1次,因为最后一次不需要比较了,用一个索引位置上的元素和其他位置的元素比较,所以内层循环要从第二个位置开始。

你可能感兴趣的:(Java 排序)