常見資料結構與演算法 選擇排序

2022-10-11 05:50:24 字數 1703 閱讀 1638

常見資料結構與演算法-選擇排序

一.選擇排序概述

1>.選擇排序總結

選擇排序

屬於選擇排序

兩兩比較大小,找出極值(極大值或極小值)被放置在固定的位置,這個固定位置一般指的是某一端

結果分為公升序和降序排列

降序n個數從左至右,索引從0開始到n-1

,兩兩依次比較,記錄大值索引,此輪所有數比較完畢,將大數和索引0數交換,如果大數就是索引1,不交換。第二輪,從1開始比較,找到最大值,將它和索引1位置交換,如果它就在索引1位置則不交換。依次類推,每次左邊都會固定下乙個大數。

公升序和降序相反

選擇排序總結:

簡單選擇排序需要資料一輪輪比較,並在每一輪中發現極值

沒有辦法知道當前輪是否已經達到排序要求,但是可以知道極值是否在目標索引位置上

遍歷次數1,...,n-1之和n(n-1)/2

時間複雜度o(n2)

減少了交換次數,提高了效率,效能略好於冒泡法

2>.選擇排序原理

初始值:[198

5674

32]        

第一趟:[91

8567

432]    #選擇出此輪最大數9,和索引0數交換選擇

第二趟:[

9 8 15

6743

2]    #選擇出次輪最大數8,和索引1數交換,下面的工作方式以此類推。

第三趟:[

9 8 756

1432

]第四趟:[

9 8 7 651

432]

第五趟:[

9 8 7 6 514

32]第六趟:[

9 8 7 6 5 413

2]第七趟:[

9 8 7 6 5 4 312

]第八趟:[

9 8 7 6 5 4 3 2

1]

二.使用程式語言實現選擇排序1>.python實現版本

博主推薦閱讀:

2>.j**a實現版本

/**

* 選擇排序

*

@author

尹正傑

*/public

class

arraydemo3 ;

system.out.println("排序前:");

printarray(arr);

selectsort(arr);

system.out.println("排序後:");

演算法常見資料結構

array 陣列最簡單而且應用最廣泛的資料結構之一.特性 使用連續的記憶體來儲存,陣列中的所有元素必須是相同的型別或型別的衍生 同質資料結構 元素可以通過下標直接訪問 linkedlist 鍊錶,線性表的一種,最基本,最簡單,也最為常用的資料結構.特性 元素之間的關係是一對一的關係 除了第乙個和最後...

常見資料結構與演算法整理總結

一 前言 資料結構,是指相互之間存在一種或多種特定關係的資料關係的集合,用計算機儲存 組織資料的方式。資料結構分為邏輯結構 物理結構和資料的運算三大部分。二 為什麼要學資料結構 1 因為資料結構作為計算機專業的專業基礎課程,是計算機考研的必考科目之一,如果打算報考計算機專業的研究生,你必須學好它 2...

常見資料結構

陣列 array 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列...