日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构——排序:插入排序、选择排序、交换排序、归并排序、基数排序

發(fā)布時間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构——排序:插入排序、选择排序、交换排序、归并排序、基数排序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

排序

內(nèi)部排序:數(shù)據(jù)量不大,在內(nèi)存中可以完成排序。

外部排序:借助外存。把數(shù)據(jù)文件分成若干塊,涉及內(nèi)外存數(shù)據(jù)的轉(zhuǎn)換、存儲器的管理等。

穩(wěn)定排序:能保證排序前兩個相等的數(shù)其在序列的前后位置順序和排序后它們兩個的前后位置順序相同。如果Ai = Aj,Ai原來在位置前,排序后Ai還是要在Aj位置前。

不穩(wěn)定排序:不是上面穩(wěn)定的情況。

穩(wěn)定的排序算法:直接插入排序、冒泡排序、歸并排序
不穩(wěn)定的排序算法:希爾排序、快速排序、簡單選擇排序、堆排序

參考:八大排序算法?https://blog.csdn.net/hguisu/article/details/7776068

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

插入排序

來一個,插一個。

如果碰見一個和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后順序沒有改變,從原無序序列出去的順序就是排好序后的順序,所以直接插入排序是穩(wěn)定的。

?

希爾排序:也是一種插入排序。

上面先增量為5,再增量為3

最后再增量為1,就是全體排序。

?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

交換排序

冒泡排序

快速排序

選擇一個元素,放到它自己合適的位置,它的前面都比他小,他的后面都比他大。

比他小的往前站,比他大的往后站。前面和后面的順序不管。

?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

選擇排序

先選取最小的,作為第一個

再選取當(dāng)前最小的最為第二個數(shù)。

....

堆排序

一種選擇排序

堆排序是一種樹形選擇排序,是對直接選擇排序的有效改進(jìn)。

上面非終端節(jié)點(diǎn)就是非葉子節(jié)點(diǎn),中間的點(diǎn)。

首先創(chuàng)建一個堆。再輸出堆頂元素。剩下的元素再調(diào)整成堆。。。

創(chuàng)建堆過程:

1、先當(dāng)做完全二叉樹羅列起來。

2、調(diào)整成為堆:

從最后一個非終端節(jié)點(diǎn),不滿足堆就交換。不斷把小的往上推。。。。

注意上圖,49和13交換后,49下來對下面的影響,再調(diào)整。

最后,13輸出后,再把97放在最上面,再調(diào)整。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

?

歸并排序:

?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

基數(shù)排序:

基數(shù)排序之前,先說桶排序:桶式排序是一種分配排序。

簡單來說,就是把數(shù)據(jù)分組,放在一個個的桶中,然后對每個桶里面的再進(jìn)行排序(不管什么方式)。

基數(shù)排序:(用多趟桶排序

對數(shù)字型或字符型的單關(guān)鍵字,可以看作由多個數(shù)位或多個字符構(gòu)成的多關(guān)鍵字,此時可以采用“分配-收集”的方法進(jìn)行排序,這一過程稱作基數(shù)排序法,其中每個數(shù)字或字符可能的取值個數(shù)稱為基數(shù)。比如,撲克牌的花色基數(shù)為4,面值基數(shù)為13。在整理撲克牌時,既可以先按花色整理,也可以先按面值整理。按花色整理時,先按紅、黑、方、花的順序分成4摞(分配),再按此順序再疊放在一起(收集),然后按面值的順序分成13摞(分配),再按此順序疊放在一起(收集),如此進(jìn)行二次分配和收集即可將撲克牌排列有序。? ?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的数据结构——排序:插入排序、选择排序、交换排序、归并排序、基数排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。