数据结构-排序-选择排序

    科技2024-12-13  35

    选择排序原理:

    对于给定的一组数据记录,经过一轮比较之后得到最小的记录,然后将该记录与数据元素的第一个元素进行交换;接着对不保括第一个元素之外的其他元素进行第二轮比较,得到最小的元素之后与数据元素的第二个元素进行交换;然后进行第三次…

    示例:

    原数据元素:{37, 64, 96, 75, 12} 第一次排序之后:12 {64, 96, 75, 37} 第二次排序之后:12 37 {64, 96, 75} 第三次排序之后:12 37 64 {96, 75} 第四次排序之后:12 37 64 75 {96} 第五次排序之后:12 37 64 75 96(有序)

    选择排序算法实现:(不稳定算法)

    public static void main(String[] args) { int[] arr = {37, 64, 96, 75, 12}; sort(arr); for (int s : arr) { System.out.print(s+"\t"); } } // 选择排序 public static void sort(int[] a) { for (int i = 0; i <= a.length - 2; i++) { // 定义一个变量,记录最小元素所在的索引,默认为参与选择排序的第一个元素所在的索引位置 int minIndex = i; for (int j = i + 1; j < a.length; j++) { // 判断a[i] 的值是否大于 a[j] if(greater(a[minIndex], a[j])) { // 将最小值元素的索引赋给minIndex minIndex = j; } } // 交换两个位置的值 exc(a, i, minIndex); } } /* * 比较两个数的大小 */ public static boolean greater(int v, int w) { return v > w; } /* * 交换两个位置的值 */ public static void exc(int[] a, int i, int j) { int temp; temp = a[i]; a[i] = a[j]; a[j] = temp; }

    排序结果:

    Processed: 0.013, SQL: 8