精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡單選擇排序算法的流程,代碼,性能等詳細資料概述

算法與數據結構 ? 來源:未知 ? 作者:易水寒 ? 2018-08-18 10:47 ? 次閱讀

簡單選擇排序是一種選擇排序。

選擇排序:每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。

簡單排序處理流程

(1)從待排序序列中,找到關鍵字最小的元素;

(2)如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換;

(3)從余下的 N - 1 個元素中,找出關鍵字最小的元素,重復(1)、(2)步,直到排序結束。

如圖所示,每趟排序中,將當前第 i 小的元素放在位置 i 上。

核心代碼

publicvoidselectionSort(int[]list){//需要遍歷獲得最小值的次數//要注意一點,當要排序N個數,已經經過N-1次遍歷后,已經是有序數列for(inti=0;ilist[j]){index=j;}}//將找到的第i個小的數值放在第i個位置上temp=list[index];list[index]=list[i];list[i]=temp;System.out.format("第%d趟: ",i+1);printAll(list);}}算法分析

簡單選擇排序算法的性能

時間復雜度

簡單選擇排序的比較次數與序列的初始排序無關。 假設待排序的序列有 N 個元素,則比較次數總是N (N - 1) / 2。

而移動次數與序列的初始排序有關。當序列正序時,移動次數最少,為 0.

當序列反序時,移動次數最多,為3N (N - 1) / 2。

所以,綜合以上,簡單排序的時間復雜度為O(N2)。

空間復雜度

簡單選擇排序需要占用 1 個臨時空間,在交換數值時使用。

完整參考代碼

JAVA版本

代碼實現

1packagenotes.javase.algorithm.sort;23importjava.util.Random;45publicclassSelectionSort{67publicvoidselectionSort(int[]list){8//需要遍歷獲得最小值的次數9//要注意一點,當要排序N個數,已經經過N-1次遍歷后,已經是有序數列10for(inti=0;ilist[j]){17index=j;18}19}2021//將找到的第i個小的數值放在第i個位置上22temp=list[index];23list[index]=list[i];24list[i]=temp;2526System.out.format("第%d趟: ",i+1);27printAll(list);28}29}3031//打印完整序列32publicvoidprintAll(int[]list){33for(intvalue:list){34System.out.print(value+" ");35}36System.out.println();37}3839publicstaticvoidmain(String[]args){40//初始化一個隨機序列41finalintMAX_SIZE=10;42int[]array=newint[MAX_SIZE];43Randomrandom=newRandom();44for(inti=0;i

運行結果

排序前:3528120841第1趟:0528123841第2趟:0128523841第3趟:0118523842第4趟:0112583842第5趟:0112283845第6趟:0112238845第7趟:0112234885第8趟:0112234588第9趟:0112234588排序后:0112234588

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4601

    瀏覽量

    92677
  • 代碼
    +關注

    關注

    30

    文章

    4753

    瀏覽量

    68368
  • 排序
    +關注

    關注

    0

    文章

    31

    瀏覽量

    9704

原文標題:排序算法總結(6):簡單選擇排序

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    調制解調器和積分器算法程序的詳細資料概述

    本文的主要內容介紹的是調制解調器和積分器算法程序的詳細資料概述
    發表于 04-28 10:20 ?11次下載
    調制解調器和積分器<b class='flag-5'>算法</b>程序的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    TI的基于DSP兼容的第三方算法協議的詳細資料概述

    本文的主要內容介紹的是TI的基于DSP兼容的第三方算法協議的詳細資料概述
    發表于 05-07 17:04 ?8次下載
    TI的基于DSP兼容的第三方<b class='flag-5'>算法</b>協議的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    Stellaris系列產品的選擇詳細資料概述

    本文的主要內容介紹的是TI的產品Stellaris系列產品的選擇詳細資料概述
    發表于 05-09 15:59 ?8次下載
    Stellaris系列產品的<b class='flag-5'>選擇</b><b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    9013流水燈的介紹和設計詳細資料概述

    一個簡單流水燈9013流水燈的介紹和設計詳細資料概述
    發表于 06-05 08:00 ?0次下載
    9013流水燈的介紹和設計<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    常用的非比較排序算法:計數排序,基數排序,桶排序詳細資料概述

    這篇文章中我們來探討一下常用的非比較排序算法:計數排序,基數排序,桶排序。在一定條件下,它們的時間復雜度可以達到O(n)。
    的頭像 發表于 06-18 15:11 ?7093次閱讀
    常用的非比較<b class='flag-5'>排序</b><b class='flag-5'>算法</b>:計數<b class='flag-5'>排序</b>,基數<b class='flag-5'>排序</b>,桶<b class='flag-5'>排序</b>的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    開關電源的正激變換器基本工作原理及元器件如何選擇詳細資料概述

    開關電源的正激變換器基本工作原理及元器件如何選擇詳細資料概述
    的頭像 發表于 07-17 19:13 ?1.5w次閱讀
    開關電源的正激變換器基本工作原理及元器件如何<b class='flag-5'>選擇</b><b class='flag-5'>等</b><b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    PID程序算法詳細資料概述免費下載

    本文檔的主要內容詳細介紹的是PID程序算法詳細資料概述免費下載
    發表于 07-24 08:00 ?36次下載

    SV601187的詳細資料合集包括了電路圖,原理圖和介紹詳細資料概述

    本文檔的主要內容詳細介紹的是SV601187的詳細資料合集包括了電路圖,原理圖和介紹詳細資料概述
    發表于 07-30 08:00 ?18次下載
    SV601187的<b class='flag-5'>詳細資料</b>合集包括了電路圖,原理圖和介紹<b class='flag-5'>等</b><b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    如何使用萬用表簡單判斷旋轉編碼器?的詳細資料概述

    本文檔的主要內容詳細介紹的是如何使用萬用表簡單判斷旋轉編碼器?的詳細資料概述
    發表于 09-10 08:00 ?15次下載

    幾種c語言程序的排序包括應用程序資料免費下載

    本文檔的主要內容詳細介紹的是幾種c語言程序的排序包括應用程序好資料免費下載包括了:堆排序,改進冒泡排序,歸并
    發表于 09-29 08:00 ?6次下載
    幾種c語言程序的<b class='flag-5'>排序</b>包括應用程序<b class='flag-5'>等</b><b class='flag-5'>資料</b>免費下載

    C語言教程之如何選擇結構程序設計的詳細資料概述

    本文檔的主要內容詳細介紹的是C語言教程之如何選擇結構程序設計的詳細資料概述
    發表于 11-02 10:53 ?3次下載
    C語言教程之如何<b class='flag-5'>選擇</b>結構程序設計的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    數碼管跑馬燈實驗的目標和流程圖及程序的詳細資料概述

    本文檔的主要內容詳細介紹的是數碼管跑馬燈實驗的目標和流程圖及程序的詳細資料概述免費下載。
    發表于 11-12 08:00 ?17次下載
    數碼管跑馬燈實驗的目標和<b class='flag-5'>流程</b>圖及程序的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    FPGA視頻教程之FPGA開發流程詳細資料概述

    本文檔的主要內容詳細介紹的是FPGA視頻教程之FPGA開發流程詳細資料概述免費下載。
    發表于 03-01 11:35 ?11次下載
    FPGA視頻教程之FPGA開發<b class='flag-5'>流程</b>的<b class='flag-5'>詳細資料</b><b class='flag-5'>概述</b>

    圖論算法及MATLAB程序代碼詳細資料說明

    本文檔的主要內容詳細介紹的是圖論算法及MATLAB程序代碼詳細資料說明。
    發表于 04-23 08:00 ?0次下載
    圖論<b class='flag-5'>算法</b>及MATLAB程序<b class='flag-5'>代碼</b>的<b class='flag-5'>詳細資料</b>說明

    解析數據結構的常用七大排序算法

    為了讓大家掌握多種排序方法的基本思想,本篇文章帶著大家對數據結構的常用七大算法進行分析:包括直接插入排序、希爾排序、冒泡排序、快速
    的頭像 發表于 03-16 08:22 ?1656次閱讀