c語言中排序方法
發(fā)布時間:2025-09-06 | 來源:互聯(lián)網(wǎng)轉(zhuǎn)載和整理
1、冒泡排序(最常用)
冒泡排序是最簡單的排序方法:原理是:從左到右,相鄰元素進(jìn)行比較。每次比較一輪,就會找到序列中最大的一個或最小的一個。這個數(shù)就會從序列的最右邊冒出來。(注意每一輪都是從a[0]開始比較的)
以從小到大排序為例,第一輪比較后,所有數(shù)中最大的那個數(shù)就會浮到最右邊;第二輪比較后,所有數(shù)中第二大的那個數(shù)就會浮到倒數(shù)第二個位置……就這樣一輪一輪地比較,最后實現(xiàn)從小到大排序。
2、雞尾酒排序
雞尾酒排序又稱雙向冒泡排序、雞尾酒攪拌排序、攪拌排序、漣漪排序、來回排序或快樂小時排序,是冒泡排序的一種變形。該算法與冒泡排序的不同處在于排序時是以雙向在序列中進(jìn)行排序。
原理:數(shù)組中的數(shù)字本是無規(guī)律的排放,先找到最小的數(shù)字,把他放到第一位,然后找到最大的數(shù)字放到最后一位。然后再找到第二小的數(shù)字放到第二位,再找到第二大的數(shù)字放到倒數(shù)第二位。以此類推直到完成排序。
3、選擇排序
思路是設(shè)有10個元素a[1]-a[10],將a[1]與a[2]-a[10]比較,若a[1]比a[2]-a[10]都小,則不進(jìn)行交換。若a[2]-a[10]中有一個以上比a[1]小,則將其中最大的一個與a[1]交換,此時a[1]就存放了10個數(shù)中最小的一個。同理第二輪拿a[2]與a[3]-a[10]比較,a[2]存放a[2]-a[10]中最小的數(shù),以此類推。
4、插入排序
插入排序是在一個已經(jīng)有序的小序列的基礎(chǔ)上,一次插入一個元素*
一般來說插入排序都采用in-place在數(shù)組上實現(xiàn)。
具體算法描述如下:
⒈從第一個元素開始,該元素可以認(rèn)為已經(jīng)被排序
⒉取出下一個元素,在已經(jīng)排序的元素序列中從后向前掃描
⒊如果該元素(已排序)大于新元素,將該元素移到下一位置
⒋重復(fù)步驟3,直到找到已排序的元素小于或者等于新元素的位置
⒌將新元素插入到下一位置中
⒍重復(fù)步驟2~5
上一篇:兔子吃蘿卜嗎