冒泡原理以及c實現

2021-09-14 05:26:56 字數 1620 閱讀 1874

主要講下冒泡、選擇、插入排序的原理以及c的**實現(其實我是不想寫的,因為大夫放學不走)

首先說下這個氣泡排序,這個冒泡分為兩種,單冒泡和雙冒泡並行排序(其實這個雙冒泡我也是今天才知道這個老師一天就講一些有的沒的,我都跟不上),廢話不多說,開始吧(你要是覺得我廢話多那就不要看,反正我寫的我也不會看,錯了我也不改)。

1.單氣泡排序

單冒泡,這個圖是從上到下,實現的是從小到大的排序的功能,就是小的數字往上走,大的數字往下走。首先是62跟34比,34小,所以就交換次序,然後是62和84比,62比84小,順序就不用交換,接下來是84和88比,同樣84小,所以就不用交換,接下來是88和77比,77比88小,所以就要交換了,然後是88和21比,21小,所以兩個數字的位置交換,以這樣的方式進行到底,最後就可以把最大的數字挑出來,而且最大的數字是在最底下。這一輪完了就進行下一輪,以同樣的方式進行,從第乙個數字開始,與上一輪比較的方式相同,但是比較到倒數第二個數字就可硬停止這一輪的比較了,因為上一輪已經將最大的數字跳出來放在最下面了。這一輪直接比較到倒數第二位就可以了。以同樣的方式依次輪迴,後面的每一次比較的次數都比上一輪少一次。原理就是這些,接下來就是上**了。(其實排序程式很簡單,但是我這個班的老師進度快,喜歡那種各種穿插的講)

上**#include

#include

void bollesort(int *a, int n)}}

}void arrayprint(int *a, int n)

}int main()

;bollesort(arr,10);

arrayprint(arr,10);

system("pause");

return 0;

}接下來就是雙冒泡並行排序,有單就有雙,(這個我本來也不想寫,但是我不會,所以要學習要寫)

雙氣泡排序是這樣子的,首先62和34比,34小,所以就和62的位置交換,然後是62和84比,84和88比,然後是88和77比,77小,所以77和88的位置交換,以此類推,就和單冒泡的方法是一樣的,這樣進行到底,就找到了最大的數,即為100放在了最下面。然後第一輪比較完了,接下來就是雙冒泡的不同之處了,第二輪從35開始,35與99比較,35小,所以35和99就交換位置了,以此類推,這一輪就可以把最小的數找到,並且放在了第一位,如此往復,這樣的好處是比較的次數少了。

接下來就是上**了

#include

#include

void double_bollesort(int *br, int n)

}for (int j = n - 1- i; j > i; j--)}}

}void arrayprint(int *br, int n)

}int main()

;double_bollesort(arr,10);

arrayprint(arr,10);

system("pause");

return 0;

}好了,我要放學了,大夫累了,今天的部落格就寫到這裡。**我寫的,vs2017,下次再寫插入和選擇排序。

完整的氣泡排序實現以及原理

氣泡排序 比較次數的公式 n n 1 2 原理 相鄰元素兩兩比較,值較大者往後放,第一次比較完畢,最大值出現在了最大索引處。public class bubblesort system.out.println 氣泡排序前 for int i num 第一次比較 是為了防止陣列越界 num.lengt...

氣泡排序以及其原理

54 63,25,15 2 進行第一次排序 54 和 63 比較 54 63 54,63 63 和 25 比較 25 63 54,25 63 63 和 15 比較 54,25,15,63 63 和 2 比較 54,25 15,2,63 進行第二次排序 25 15 2 54 63 進行第三次排序 15...

氣泡排序實現原理

原理 比較兩個相鄰的元素,將值大的元素交換至右端。思路 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複第一趟步驟,直至全部排序完...