1. 程式人生 > >資料結構和演算法 | 簡單選擇排序演算法原理及實現

資料結構和演算法 | 簡單選擇排序演算法原理及實現

選擇排序是一種非常簡單的排序演算法,就是在序列中依次選擇最大(或者最小)的數,並將其放到待排序的數列的起始位置。

簡單選擇排序的原理

簡單選擇排序的原理非常簡單,即在待排序的數列中尋找最大(或者最小)的一個數,與第 1 個元素進行交換,接著在剩餘的待排序的數列中繼續找最大(最小)的一個數,與第 2 個元素交換。以此類推,一直到待排序的數列中只有一個元素時為止。

也就是說,簡單選擇排序可分為兩部分,一部分是選擇待排序的數列中最小的一個數,另一部分是讓這個數與待排序的數列部分的第1個數進行交換,直到待排序的數列只有一個元素,至此整個數列有序。

總結起來就是:對於具有 n 個記錄的無序表遍歷 n-1 次,第 i 次從無序表中第 i 個記錄開始,找出後序關鍵字中最小的記錄,然後放置在第 i 的位置上。

例如對無序表{56,12,80,91,20}採用簡單選擇排序演算法進行排序,具體過程為:

  • 第一次遍歷時,從下標為 1 的位置即 56 開始,找出關鍵字值最小的記錄 12,同下標為 0 的關鍵字 56 交換位置:在這裡插入圖片描述

  • 第二次遍歷時,從下標為 2 的位置即 56 開始,找出最小值 20,同下標為 2 的關鍵字 56 互換位置:

  • 第三次遍歷時,從下標為 3 的位置即 80 開始,找出最小值 56,同下標為 3 的關鍵字 80 互換位置:

  • 第四次遍歷時,從下標為 4 的位置即 91 開始,找出最小是 80,同下標為 4 的關鍵字 91 互換位置:

  • 到此簡單選擇排序演算法完成,無序表變為有序表。