選擇排序(Java版)

選擇排序是每次循環(huán)都從未被選擇的數(shù)組中選取一個(gè)最小值放在數(shù)組前面。第一次循環(huán)將全部數(shù)組中的最小值放在下標(biāo)為0的位置,此時(shí),下標(biāo)為0的數(shù)被視為已被選擇數(shù)組;第二次循環(huán)將從未被選擇的數(shù)組從選出第二最小值放在下標(biāo)為1的位置……由此循環(huán)到數(shù)組中不包含未被選擇的數(shù)為止。

歸并排序的最好、最壞和平均時(shí)間復(fù)雜度都是O(n^2)。

/**
 * Created by lkmc2 on 2018/1/8.
 */
public class SelectSort {
    public static void selectSort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            //標(biāo)簽當(dāng)前下標(biāo)為最小值下標(biāo)
            int min = i;

            //從i下標(biāo)的后一位到數(shù)組最后一位選出最小值的下標(biāo)
            for (int j = i + 1; j < array.length; j++)
                if (array[j] < array[min])
                    min = j;
            //將最小值的下標(biāo)與i位置的值交換
            int temp = array[i];
            array[i] = array[min];
            array[min] = temp;
        }
    }

    public static void main(String[] args) {
        int[] array = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
        selectSort(array);

        for (int num : array) {
            System.out.print(num + " ");
        }
    }
}
運(yùn)行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 思路 原理是每一次從待排序的數(shù)據(jù)元素中選出最?。ɑ蜃畲螅┑囊粋€(gè)元素,存放在序列的起始位置,直到全部待排序的數(shù)據(jù)元素...
    Skymiles閱讀 254評(píng)論 0 1
  • 冒泡排序 冒泡排序相對(duì)來(lái)說(shuō)是較為簡(jiǎn)單的一種排序,它的思想就是在每一次循環(huán)中比較相鄰的兩個(gè)數(shù),通過(guò)交換的方式,將最小...
    陌上疏影涼閱讀 595評(píng)論 0 3
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,265評(píng)論 0 4
  • 小亖除了在已既定好的職業(yè)發(fā)展之外,一直尋找自己可以為其他人服務(wù)的意義,最近小亖找到了--中醫(yī)。 其實(shí)身邊也有朋友在...
    亖曦閱讀 182評(píng)論 0 2
  • 起來(lái)吧!懶惰的家伙 雖然你最后什么也沒(méi)留下 你可以做一名發(fā)燒友 愛(ài)音樂(lè) 愛(ài)自己 愛(ài)詩(shī)歌 愛(ài)你所愛(ài) 不要將自己關(guān)閉 ...
    林幻閑閱讀 157評(píng)論 0 1