排序方法(選擇排序)
阿新 • • 發佈:2018-12-01
選擇排序法
我們先用三個數放入a, b, c,變數中排序簡單來探究選擇排序法思想。第一輪先將a和b比較,較大數放入a中,再將a和c比較大的數放入a中;
比如
a=6; b=7;c=8;
第一輪確定第一位
第一次比較
a=7;b=6;c=8;
第二次比較
a=8;b=6;c=7;
第二輪後確定第二位
第一次比較
a=8;b=7;c=6;經過三次比較終於排序好了。
這次將 77 45 26 89 9五個數從小到大排列;
第一輪確定第一位
77 45 26 86 9 原始資料
77 45 26 86 9 77和45比較,45比77小,互換位置
45 77 26 86 9 45和26比較,26比45小,互換位置
26 77 45 86 9 26和86比較,86比26大,不變位置
26 77 45 86 9 26和9比較, 9比26小,互換位置
9 77 45 86 26 第一輪結果確定第一位數;
第二論排序後 9 26 77 86 45
第三論排序後 9 26 45 86 77
第四論排序後 9 26 45 77 86 已經排好不需要繼續;
程式碼實現
#include<stdio.h> int main() { int a[5],i,t,j; for(i=0;i<5;i++)//輸入五個數 scanf("%d",&a[i]); for(i=1;i<=4;i++)//對於五個數只需4輪確定前四位 { for(j=i+1;j<5;j++)//a[i]需要和a[i+1]比較 { if(a[i]>a[j])//從小到大 { t=a[i];//交換位置 a[i]=a[j]; a[j]=t; } } } for(i=0;i<5;i++) printf("%d\t",a[i]);//輸出排序 return 0; }
選擇排序已經完了,還有一種氣泡排序和這差不多。選擇排序是位置從前面確定過來。而氣泡排序位置是從後面確定到前面。