选择排序
话不多说,直接上代码(Coding):
/** * 选择排序 每轮选择当前位置 找出后面的较小值与当前位置进行替换 */ public class Demo03 { public static void main(String[] args) { // 1、定义一个元素列表 int[] numList = new int[]{5, 2, -1, 20}; // 2、选择排序 chooseSort(numList); // 3、打印 for (int i = 0; i < numList.length; i++) { System.out.print(i == numList.length - 1 ? numList[i] : numList[i] + ","); } } /** * 选择排序 * * @param numList */ private static void chooseSort(int[] numList) { // 0 -> 1 2 3 // 1 -> 2 3 // 2 -> 3 for (int i = 0; i < numList.length - 1; i++) { for (int j = i + 1; j < numList.length; j++) { if (numList[i] > numList[j]) { int temp = numList[i]; numList[i] = numList[j]; numList[j] = temp; } } } } }
这边会发现冒泡排序好像和选择排序有点像 因此我这边顺便把区别也给写下:
选择排序和冒泡排序的区别?
1、每轮比较的次数不同 冒泡排序需要每轮多次比较 第一个和第二个比 然后第二个和第三个比 逐一比
但选择排序每轮是单次比较的 它是每轮选择当前位置 找出后面的更小值 与自己进行交换位置
2、因此从轮数来看 比较时间效率的话 选择排序会比较快
3、但如果元素列表中出现重复的元素的情况的话 冒泡排序会比较稳定 用选择排序的话就会比较不稳定
.......剩下的请大家帮忙写下!