选择排序法

1.原理

拿未排序的第一个元素与其它元素依次进行比较,每轮比较获得一个最值(根据需要取最大或最小置于未排序元素首位),比较n-1轮。

画图解释如下(以升序为例):

第一轮比较:

 

第二轮比较:

 

 

 第三轮比较:

 

 第四轮比较:

 

 根据上述,可以得出:n个元素要进行n-1轮比较,每轮比较次数-1;时间复杂度为O(n^2)。

 

2.核心代码如下:

void selectionSort(int[] arr){
        int temp;
        //进行比较轮次
        for (int i=0;i<arr.length-1;i++){
            //每轮比较次数
            for(int j=i+1;j<arr.length;j++){
                //拿未排序的首位依次比较后面元素
                if(arr[i]>arr[j]){
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
    }

 

posted @ 2021-01-19 20:18  吃个橘子丶  阅读(207)  评论(0)    收藏  举报