選擇排序(selection sort)通過多次比較和交換來實現排序,其排序流程如下:
1.選取陣列中最小的乙個元素和陣列的第乙個元素交換。
2.接著從剩下的所有元素中選擇最小的與第二個元素交換。
3.和第二步同樣的方法對剩下的所有元素進行排序,最後便可得到按照從大到小的順序排好陣列中的各元素。
具體過程如下:
初始資料:23 33 15 12 53
一次排序:12 33 231553
二次排序:1215 332353
三次排序:1215 233353
四次排序:1215 233353
下面附詳細c語言源**:
#include#includevoid selectionsort(int *a,int len);
void main()
} printf("%d次排序後:",i+1);
該程式在vc++6.0上編譯通過,執行正確,如果發現錯誤希望可以及時通知本人,大家一起學習。
最後,選擇排序也是比較簡單的排序演算法,思路十分直觀。接下來還會貼出插入排序、希爾排序、快速排序等各種排序演算法,希望大家可以一起學習,一起進步。
排序演算法 2 選擇排序
簡單選擇排序是一種選擇排序。選擇排序 每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。簡單排序很簡單,它的大致處理流程為 動態效果示意圖 舉例說明,處理過程示意圖如下所示 如圖所示,每趟排序中,將當前第i小的元素放在位置i上。c include incl...
排序演算法2 選擇排序
選擇排序 最好最壞時間複雜度 n 2 public class selectsort 預設最小值 int min 0 記錄最小值下標 int minindex 0 for int i 0 i arr.length 1 i 發現最小值改變才進行交換 if min arr i system.out.pr...
排序演算法(2) 選擇排序 堆排序
繼續上篇的 交換排序 氣泡排序 快速排序,本篇介紹選擇排序和堆排序 一 選擇排序 非常的簡單直觀,每次找出最小或者最大的值儲存起來,繼續找剩下的值儲存起來,直達最後乙個元素。從arr 0 arr n 中找出最小的值,放在arr 0 此時arr 0 已經排好序 從arr 1 arr n 中找出最小的值...