最初接觸演算法,最先見到的想必就是排序了,各種各樣的排序演算法層出不窮。下面是總結的一些常見的排序:
氣泡排序就像它的名字一樣,重複的遍歷元素,每次只比較相鄰的兩個元素,進行相應的交換即可,下面是圖示(自己畫的,比較簡單):
看完這個圖示,是不是腦海中大致有了**的思路呢?我們一起來寫一下看看吧
我們假設有n個數字需要排序:
那麼我們一共需要遍歷n-1
次(因為最後一次只剩下乙個數,所以不需要再遍歷了)
每次對全部資料進行遍歷,我們一共需要比較n-遍歷次數
次,因為每次遍歷都會將乙個數字放到正確的位置上。所以要減去這些已經歸位的數字。
那麼**就是兩個迴圈巢狀即可實現了:
for
(i =
0; i < n; i++)}
}
選擇排序也是最簡單的排序演算法之一。
如果是從小到大進行排序,那麼最簡單的選擇排序就是對每次的待排序數字依次進行遍歷,然後將這些數字中的最小值放到這些數字的最前面即可,假設有n個數字,遍歷n次後,所有的數字都會是有序的。
for
(i =
0; i < n; i++)}
//開始進行數字交換
temp = a[i]
; a[i]
= a[k]
; a[k]
= temp;
}
插入排序也是經典的排序演算法之一,其中最簡單的就是直接插入排序。
該演算法的思想也很簡單。將排列的數字分為待插入部分和已插入部分,已插入部分是已經排列好的數字,對待插入部分依次進行遍歷,然後選擇其在已插入部分插入的位置即可。
//外迴圈對待插入部分進行遍歷
for(i =
1; i < n; i++
) a[j]
= temp;
}
圖示有空再更!( ̄▽ ̄)" 排序演算法入門之氣泡排序
在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...
排序演算法入門之氣泡排序
在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...
排序演算法入門之氣泡排序
在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...