演算法入門之排序

2021-10-04 20:33:47 字數 1138 閱讀 7800

最初接觸演算法,最先見到的想必就是排序了,各種各樣的排序演算法層出不窮。下面是總結的一些常見的排序:

氣泡排序就像它的名字一樣,重複的遍歷元素,每次只比較相鄰的兩個元素,進行相應的交換即可,下面是圖示(自己畫的,比較簡單):

看完這個圖示,是不是腦海中大致有了**的思路呢?我們一起來寫一下看看吧

我們假設有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;

}

圖示有空再更!( ̄▽ ̄)"

排序演算法入門之氣泡排序

在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...

排序演算法入門之氣泡排序

在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...

排序演算法入門之氣泡排序

在開發中,對一組資料進行有序地排列是經常需要做的事情,所以掌握幾種甚至更多的排序演算法是絕對有必要的 本文章介紹的是排序演算法中較簡單的一種演算法 氣泡排序 題外話 在深入學習更多排序演算法後和在實際使用情況中,氣泡排序的使用還是極少的。它適合資料規模很小的時候,而且它的效率也比較低,但是作為入門的...