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