排序的三中古老的方法,選擇排序粹胯,插入排序蓖柔,冒泡排序。
一般來說风纠,我們用得到的也就只有插入排序况鸣,選擇排序和冒泡排序的用處不大,只適合作為開拓視野而用竹观。
為什么這么說呢镐捧?
這就要從排序算法的分析說起了。
分析排序算法臭增,從排序算法的執(zhí)行效率懂酱,內(nèi)存消耗和穩(wěn)定性三方面入手
排序算法的執(zhí)行效率,也從三個(gè)方面衡量:
1速址,最好情況玩焰,最壞情況由驹,平均情況的時(shí)間復(fù)雜度
2芍锚,時(shí)間復(fù)雜度的系數(shù)昔园,常數(shù),低階
其實(shí)這些在規(guī)模到了一定程度后是不能忽視的并炮,
3默刚,比較次數(shù)和交換次數(shù)
內(nèi)存消耗,通過空間復(fù)雜度來衡量逃魄。有一個(gè)概念叫“原地排序”荤西,就是特指空間復(fù)雜度為O(1)的算法,選擇伍俘,插入邪锌,冒泡都是原地排序
穩(wěn)定性,就是指排序過程中癌瘾,相等元素之間原有的先后順序不變觅丰。
冒泡排序和插入排序在上圖額比較中是差不多的,但冒泡排序的時(shí)間復(fù)雜度比插入排序的要復(fù)雜的多妨退,所以還是選擇插入排序妇萄。