排序算法_
创始人
2024-05-13 06:30:19
0

一、选择排序

题目

arr[0~N-1]范围上,找到最小值所在的位置,然后把最小值交换到0位置。
arr[1~N-1]范围上,找到最小值所在的位置,然后把最小值交换到1位置。
arr[2~N-1]范围上,找到最小值所在的位置,然后把最小值交换到2位置。

arr[N-1~N-1]范围上,找到最小值位置,然后把最小值交换到N-1位置。

代码

package sort;public class SelectionSort {public int[] selectionSort(int[] arr) {if (arr == null) {return null;}for (int i = 0; i < arr.length - 1; i++) {int index = i;for (int j = i + 1; j < arr.length; j++) {if (arr[index] > arr[j]) {index = j;}}swap(arr, i, index);}return arr;}public void swap(int[] arr, int a, int b) {int num = arr[a];arr[a] = arr[b];arr[b] = num;}
}

二、冒泡排序

题目

在arr[0~N-1]范围上:
arr[0]和arr[1],谁大谁来到1位置;arr[1]和arr[2],谁大谁来到2位置…arr[N-2]和arr[N-1],谁大谁来到N-1位置
在arr[0~N-2]范围上,重复上面的过程,但最后一步是arr[N-3]和arr[N-2],谁大谁来到N-2位置
在arr[0~N-3]范围上,重复上面的过程,但最后一步是arr[N-4]和arr[N-3],谁大谁来到N-3位置

最后在arr[0~1]范围上,重复上面的过程,但最后一步是arr[0]和arr[1],谁大谁来到1位置

代码

package sort;public class BubbleSort {public int[] bubbleSort(int[] arr) {if (arr == null) {return null;}for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {swap(arr, j, j + 1);}}}return arr;}public void swap(int[] arr, int a, int b) {int num = arr[a];arr[a] = arr[b];arr[b] = num;}
}

三、插入排序

题目

想让arr[0~0]上有序,这个范围只有一个数,当然是有序的。
想让arr[0~1]上有序,所以从arr[1]开始往前看,如果arr[1]
想让arr[0~i]上有序,所以从arr[i]开始往前看,arr[i]这个数不停向左移动,一直移动到左边的数字不再比自己大,停止移动。
最后一步,想让arr[0~N-1]上有序,arr[N-1]这个数不停向左移动,一直移动到左边的数字不再比自己大,停止移动。

代码

package sort;public class InsertionSort {public int[] insertionSort(int[] arr) {if (arr == null) {return null;}for (int i = 1; i < arr.length; i++) {for (int j = i; j > 0 && arr[j] < arr[j - 1]; j--) {swap(arr, j, j - 1);}}return arr;}public void swap(int[] arr, int a, int b) {int num = arr[a];arr[a] = arr[b];arr[b] = num;}
}

相关内容

热门资讯

长源东谷跌3.17%,成交额9... 7月2日,长源东谷跌3.17%,成交额9349.01万元,换手率1.19%,总市值78.15亿元。异...
宇环数控跌0.87%,成交额5... 7月2日,宇环数控跌0.87%,成交额5008.02万元,换手率2.49%,总市值30.21亿元。异...
天箭科技跌4.64%,成交额2... 7月2日,天箭科技跌4.64%,成交额2.99亿元,换手率11.06%,总市值48.41亿元。异动分...
新经典跌1.22%,成交额46... 7月2日,新经典跌1.22%,成交额4675.15万元,换手率1.62%,总市值28.75亿元。异动...
彤程新材跌0.92%,成交额2... 7月2日,彤程新材跌0.92%,成交额2.55亿元,换手率1.32%,总市值193.40亿元。异动分...
百傲化学跌4.87%,成交额3... 7月2日,百傲化学跌4.87%,成交额3.29亿元,换手率2.11%,总市值152.97亿元。异动分...
联瑞新材跌3.06%,成交额1... 7月2日,联瑞新材跌3.06%,成交额1.33亿元,换手率1.22%,总市值107.94亿元。异动分...
君实生物跌0.78%,成交额4... 7月2日,君实生物跌0.78%,成交额4.62亿元,换手率1.68%,总市值363.45亿元。异动分...
广州酒家跌0.38%,成交额2... 7月2日,广州酒家跌0.38%,成交额2711.53万元,换手率0.31%,总市值88.73亿元。异...
华盛昌跌0.25%,成交额79... 7月2日,华盛昌跌0.25%,成交额7941.73万元,换手率3.97%,总市值37.88亿元。异动...