八大排序算法 —— 简单选择排序

简单插入排序

核心思想:简单选择排序就是从待排的元素中选择最小的元素,凡在已排元素的后面,依次循环n次,实现排序。

算法实现过程:

初始关键字:『 8,5,2,6,9,3,1,4,0,7 』

第一趟排序后:0,『5,2,6,9,3,1,4,8,7』

第二趟排序后:0,1,『2,6,9,3,1,4,8,7』

第三趟排序后:0,1,2,『6,9,3,5,4,8,7』

第四趟排序后:0,1,2,3,『9,6,5,4,8,7』

第五趟排序后:0,1,2,3,4,『6,5,9,8,7』

第六趟排序后:0,1,2,3,4,5,『6,9,8,7』

第七趟排序后:0,1,2,3,4,5,6,『9,8,7』

第八趟排序后:0,1,2,3,4,5,6,7,『8,9』

第九趟排序后:0,1,2,3,4,5,6,7,8,『9』

结果: 『 0,1,2,3,4,5,6,7,8,9 』


简单选择排序的时间复杂度是O(n2),空间复杂度是O(1),由于在每次选择最小的元素时,会替换部分元素的位置,可能导致相同大小的不同元素的前后位置颠倒,所以简单选择排序是一种不稳定的排序方法。

算法代码实现 :

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int []data  = new int[8];
        for(int i= 0;i<data.length ;i++){
            data[i] = sc.nextInt();
        }
        //简单选择排序
        simpleSelectionSort(data);

        for(int i = 0;i<data.length ;i++){
            System.out.print(data[i]+" ");
        }
    }
    //简单选择排序
    public static int[] simpleSelectionSort(int[] data){
         int minIndex;
         for(int i =0;i<data.length-1;i++){
             minIndex = i;
             for(int j = i+1 ;j<data.length;j++){
                 if(data[j]<data[minIndex]){
                     minIndex = j;
                 }
             }
             int tmp = data[i];
             data[i] = data[minIndex];
             data[minIndex] =tmp;
         }
        return data;
    }
}

猜你喜欢

转载自blog.csdn.net/cqx13763055264/article/details/81637571