嵌入式c三種基本排序算法總結(jié)
1、冒泡算法
冒泡排序是一個復(fù)雜度為 O(n2) 的排序方式,主要做法如下:
? ? ? 將數(shù)組分為有序區(qū)和無序區(qū),剛開始時有序區(qū)為空,每次比較相鄰的兩個元素,將兩個元素中較大的排在后面,每進行一輪排序,就將此時最大的值放入有序區(qū),因此下一次排序的時候不需要對有序區(qū)內(nèi)的元素進行比較。
2、選擇排序
選擇排序是一個復(fù)雜度為 O(n2) 的排序方式,主要思想如下:每次排序都選出當(dāng)前的最小值,放在未排序序列的第一個位置,以第一次排序為例,用隊列頭的元素2依次和其他的元素進行比較,如果隊列頭的元素值大于其他元素,那么就進行交換,最后把最小的值放在隊列頭,完成了一次排序。
3、插入排序
插入排序是一個復(fù)雜度為 O(n2) 的排序方式,主要做法:將一個元素插入到已經(jīng)排序好的隊列中,保證新的元素插入之后的新隊列依舊是有序的。通常假設(shè)第一個元素自身組成了一個有序隊列,將后面的元素做比較插入,做成新的有序隊列。
標(biāo)簽: