勵志成為程式設計師的小白又來啦!
這次要分享的是演算法中的幾種常用排序。
首先這次我們要分享的是最經典的氣泡排序…
氣泡排序:
它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。
這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「氣泡排序」。
氣泡排序的時間複雜度:o(n), 是一種穩定的排序演算法
冒泡在排序過程中可以監測到資料是否有序,這就是冒泡對資料有序性的敏感,如果待排序的資料基本有序,則氣泡排序效率非常高
我們先來寫乙份大家常寫的氣泡排序,但是它卻不是真正的氣泡排序
void bubble_sort(int* arr,int n)
{ for(int i=0;i這個**雖然不是官方的冒泡,但它也能進行排序,大家也可以參考使用。
不過我希望大家能更加運用下面這個官方冒泡,因為要是你在面試的時候,hr讓你寫冒泡,你寫這個肯定比你寫上面那個要來的效果好。
void bubble_sort(int* arr,int n)
{ for(int i=n-1;i>0;i--)
{ bool flag = true; //設乙個標誌位來表示是否有進行交換
for(int j=0;j快速排序:
歸併排序:
堆排序:
選擇排序:
插入排序:
資料結構與演算法之氣泡排序
一 氣泡排序的定義及其理解 氣泡排序是一種交換排序,它的基本思路是 兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。氣泡排序其實很容易理解,顧名思義,我們會想到氣泡。就像水底下的魚兒嘴巴裡吐出的氣泡,越鄰近水平面上的氣泡是越大的。那如何用氣泡排序的方法對大小不一的氣泡進行排序呢?氣...
資料結構與演算法之氣泡排序
氣泡排序作為演算法的入門程式,就好比程式語言裡面的hello world。核心思想就是將相鄰的兩個元素進行比較,如果順序錯誤就進行交換。給定一組資料 9,7,3,5,8,2,1。從第乙個數字9開始,將他與前面的數字7進行比較,大於7,然後兩個就交換位置,然後在用9去跟3做比較,大於3,同樣交換位置,...
資料結構與演算法之氣泡排序
1.什麼是氣泡排序 我自己的理解 相鄰的數字之間兩兩比較不斷的從右向左推選出最大 小 值的過程。特點就是一次只能在最右邊推舉出乙個最大 小 值,所以需要多次推舉 2.對上面的理解畫 釋一下,以陣列 3,4,1,5,2由小到大為例 測試結果 1,2,3,4,5 4.時間複雜度o n 2 證明一下 當外...