1. 冒泡排序
相邻的元素两两比较,大的往后放,第一次完毕之后,最大值出现了最大索引处。
冒泡排序
<b>外层循环决定比较几大次,内层循环决定了数组内元素之间的比较</b>
需求:
数组元素:{24,69,80,57,13}
请对数组元素进行排序
<pre>
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;
}
}
}
}
</pre>
要注意循环中数组的长度的变化第一个length-1是因为只需要比较四次,第二个length-1是为了防止数组的下标越界(arr[j+1),length-i是对应的arr[j]比较的次数的递减。
2. 选择排序
从0索引开始,依次和后面的元素标胶,小的往前方,第一次完毕后,最小值出现在了最小索引处。
选择排序
<b>外层循环决定比较几大次,内层循环决定了数组内元素之间的比较</b>
需求:
数组元素:{24,69,80,57,13}
请对数组元素进行排序
<pre>
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;
}
}
}
</pre>
注意外层循环只需要比较length-1次,因为最后一次不需要比较了,用一个索引位置上的元素和其他位置的元素比较,所以内层循环要从第二个位置开始。
网友评论