更新時(shí)間:2021-10-08 11:01:15 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1396次
排序是指以特定格式排列數(shù)據(jù)。排序算法指定以特定順序排列數(shù)據(jù)的方式。最常見的順序是數(shù)字或字典順序。
排序的重要性在于,如果數(shù)據(jù)以排序方式存儲(chǔ),則可以將數(shù)據(jù)搜索優(yōu)化到非常高的水平。排序還用于以更易讀的格式表示數(shù)據(jù)。以下是一些在現(xiàn)實(shí)生活場(chǎng)景中排序的例子 -
電話簿- 電話簿存儲(chǔ)按姓名排序的人的電話號(hào)碼,以便可以輕松搜索姓名。
字典- 字典按字母順序存儲(chǔ)單詞,以便搜索任何單詞變得容易。
排序算法可能需要一些額外的空間來比較和臨時(shí)存儲(chǔ)少數(shù)數(shù)據(jù)元素。這些算法不需要任何額外的空間,并且排序被稱為就地發(fā)生,或者例如在數(shù)組本身內(nèi)發(fā)生。這稱為就地排序。冒泡排序是就地排序的一個(gè)例子。
但是,在某些排序算法中,程序需要大于或等于被排序元素的空間。使用相等或更多空間的排序稱為非就地排序。合并排序是非就地排序的一個(gè)例子。
如果排序算法在對(duì)內(nèi)容進(jìn)行排序后,不改變它們出現(xiàn)的相似內(nèi)容的順序,則稱為穩(wěn)定排序。
如果排序算法在對(duì)內(nèi)容進(jìn)行排序后,改變了它們出現(xiàn)的相似內(nèi)容的順序,則稱為不穩(wěn)定排序。
當(dāng)我們希望保持原始元素的序列時(shí),算法的穩(wěn)定性很重要,例如在元組中。
如果排序算法利用要排序的列表中已經(jīng)“排序”的元素,則稱該排序算法是自適應(yīng)的。也就是說,如果源列表中的某些元素已經(jīng)排序,則在排序時(shí),自適應(yīng)算法會(huì)考慮到這一點(diǎn),并盡量不重新排序它們。
非自適應(yīng)算法是一種不考慮已經(jīng)排序的元素的算法。他們?cè)噲D強(qiáng)制每個(gè)元素重新排序以確認(rèn)它們的排序。
在討論排序技術(shù)時(shí)通常會(huì)創(chuàng)造一些術(shù)語,這里是對(duì)它們的簡(jiǎn)要介紹 -
如果連續(xù)元素大于前一個(gè)元素,則稱一系列值按遞增順序排列。例如,1、3、4、6、8、9 的順序是遞增的,因?yàn)槊總€(gè)下一個(gè)元素都大于前一個(gè)元素。
如果連續(xù)元素小于當(dāng)前元素,則稱一系列值按降序排列。例如,9、8、6、4、3、1 是按降序排列的,因?yàn)槊總€(gè)下一個(gè)元素都小于前一個(gè)元素。
如果連續(xù)元素小于或等于序列中的前一個(gè)元素,則稱該值序列為非遞增順序。當(dāng)序列包含重復(fù)值時(shí)會(huì)出現(xiàn)此順序。例如,9、8、6、3、3、1 是非遞增順序,因?yàn)槊總€(gè)下一個(gè)元素都小于或等于(在 3 的情況下)但不大于任何前一個(gè)元素。
如果連續(xù)元素大于或等于序列中的前一個(gè)元素,則稱該值序列為非遞減順序。當(dāng)序列包含重復(fù)值時(shí)會(huì)出現(xiàn)此順序。例如,1、3、3、6、8、9 是非遞減順序,因?yàn)槊總€(gè)下一個(gè)元素都大于或等于(在 3 的情況下)但不小于前一個(gè)元素。
更多相關(guān)知識(shí)就在動(dòng)力節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)教程,感興趣的小伙伴可以關(guān)注一下哦,希望對(duì)大家的學(xué)習(xí)能夠有所幫助。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743