天天看點

排序:關于選擇法和冒泡法的解析。

前言:主要解析一下冒泡法 選擇法的思想和過程。及部分編碼,

首先解釋一下冒泡法:

所謂冒泡法類似枚舉,簡單點說就是一個一個作比較

例如對一列數字進行排序,用冒泡法的思想就是(這裡說從小到大拍哈,如果是從大到小逆過來就好了):

1:先讓第一個數和第二個數比較如果第一個比第二個大的話,二者換位,

然後是第一個和第三個比較·····

2:讓第二個和第三個比較,和第四個比較

3:第三個和第四個·······知道倒數第二個和最後一個比較後。則排序完成。

然後呢我們來解釋一下選擇法:

1:先找到最小的數及對應下标(即對應的數組位置。)然後讓最小的數和第一個數換位。

2:找到從第二個到最後一個最小的數及對應位置,然後和第二個數換位,······

如此循環往複當找到最後兩個數中的最小數并和倒數第二個數換位之後則排序完成。

好了,講到這相信已經基本了解兩種方法的過程了。

不過編碼也不是件容易的事。現在大家可以先去編一下。

下文我會把關鍵部分的編碼給大家展示一下。當然,即使是同一種方法代碼也會有出入。

隻要過程沒錯就好。

下面是冒泡法的編碼:

#include<stdio.h>

int main()

{

int qwe[5];

int a,s,d,f;

for(a=0;a<5;a++)

scanf("%d",&qwe[a]);

for(a=0;a<4;a++)

for(f=a;f<5;f++)

s=qwe[a];

d=qwe[f+1];

if(s>d)

qwe[a]=d;

qwe[s+1]=s;

}

printf("%d ",qwe[a]);

printf("\n");

以數組長度為6寫的。

長度不同可自行改編。

而選擇法就不變牌了,實在不懂評論區留言實時更新。

個人作品,

如有錯誤,請指出;

如要轉載,請注明出處。

三克油。。