亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是排序算法的穩(wěn)定性?3個(gè)案例:快速排序、冒泡排序、選擇排序

 

什么是排序算法的穩(wěn)定性?

穩(wěn)定: 如果 a = b, a原本在b的前面, 排序之后, a仍然在b的前面, 那么這個(gè)排序算法就是穩(wěn)定的。反之, 就是不穩(wěn)定的排序算法。

穩(wěn)定的排序算法有:

一.快速排序

思想:選取中間的數(shù)為基準(zhǔn)值, 然后將比它小的放在左邊, 比它大的放在右邊, 然后將左右兩邊的數(shù)組進(jìn)行同樣的操作, 使用遞歸的思想。

注意三點(diǎn):

1.要判斷遞歸的邊界條件, 當(dāng)數(shù)組的長度 <= 1 時(shí), 跳出遞歸;

2.最后進(jìn)行數(shù)組合并時(shí), 需要將基準(zhǔn)值也合并進(jìn)去;

3.splice是對原數(shù)組進(jìn)行操作, 返回的是要?jiǎng)h除的數(shù)組;

什么是排序算法的穩(wěn)定性?3個(gè)案例:快速排序、冒泡排序、選擇排序

 

二.冒泡排序

冒泡排序的原理:

比方說有五個(gè)數(shù)字54321, 要按從小到大排列;

首先比較前兩個(gè), 就是5和4, 如果第一個(gè)小于第二個(gè), 不做操作, 如果第一個(gè)大于第二個(gè), 那么交換二者的位置, 即變成45321, 然后比較第二個(gè)和第三個(gè),交換位置, 變成43521, 然后第三個(gè)和第四個(gè), 第四個(gè)和第五個(gè), 這樣一次循環(huán)下來, 變成43215;

所以, 一層循環(huán)的效果就是挑出最大的一個(gè)數(shù)字5, 冒泡到最后面。接著相似方法挑出第二大, 第三大的數(shù)字等。那么一層循環(huán)就不夠用, 必須再嵌套一層。

像這個(gè)例子, 五個(gè)數(shù)字, 起碼要進(jìn)行四輪循環(huán)才行。 至于為什么要this.length - i, 是因?yàn)榈谝淮伪容^五個(gè)數(shù)字, 第二個(gè)只要比較前四個(gè)就行了,第五個(gè)肯定是最大的了。

什么是排序算法的穩(wěn)定性?3個(gè)案例:快速排序、冒泡排序、選擇排序

 

改進(jìn)后的冒泡排序:

改進(jìn)的思路: 將每趟排序中最后一次進(jìn)行交換的位置pos記錄下來, 下次排序只要掃描到pos即可。

什么是排序算法的穩(wěn)定性?3個(gè)案例:快速排序、冒泡排序、選擇排序

 

三.選擇排序

最直觀的排序算法

依次找出第一大、 第二大、 第三大...依次放在數(shù)組中

什么是排序算法的穩(wěn)定性?3個(gè)案例:快速排序、冒泡排序、選擇排序

 

歡迎關(guān)注。

分享到:
標(biāo)簽:算法 排序
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定