排序算法-选择排序 SelectSort

选择排序算法的步骤如下:

1、选择arr[0]为基准元素,比较arr[1]-arr[n],得到arr[1]-arr[n]中最小(最大)的元素arr[m],将arr[m]与arr[0]交换

2、依次将arr[1]、arr[2]...arr[n]作为基准,重复第一步的操作

总结:保存arr[0],比较arr[1]-arr[n],找到最小值,交换,后移重复

img

时间复杂度:

平均时间复杂度 O(n^2)

最坏时间复杂度 O(n^2)

最好时间复杂度 O(n^2)

伪代码:

int[] arr={};
for(i=0;i<arr.length-1;i++)
	min=i;
	minindex=arr[i]; //保存基数值
	for(j=1+i;j<arr.length;j++)
		比较找到最小值,交换

程序:

package Sort;

import java.util.Arrays;

public class SelectSort1 {
    public static void main(String[] args) {
        int[] arr = {2,-1,4,3,10,2,-6,11};
        System.out.println(Arrays.toString(arr));
        selectSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void selectSort(int[] arr){
        int minIndex;
        int min;
        for (int i = 0; i < arr.length -1; i++) {
            minIndex = i;
            min = arr[i];
            for (int j = 1+i; j < arr.length; j++) {
                if(min>arr[j]){
                    min = arr[j];
                    minIndex = j;
                }
            }
            if(minIndex!=0){
                arr[minIndex] = arr[i];
                arr[i] = min;
            }
        }
    }
}
posted @ 2021-04-02 17:10  爱学习的小杨同学  阅读(158)  评论(0)    收藏  举报