1. 程式人生 > >演算法穩定排序和非穩定排序、內排序和外排序、時間複雜度和空間複雜度

演算法穩定排序和非穩定排序、內排序和外排序、時間複雜度和空間複雜度

轉自:點選開啟連結

1、穩定排序和非穩定排序
簡單地說就是所有相等的數經過某種排序方法後,仍能保持它們在排序之前的相對次序,我們就說這種排序方法是穩定的。反之,就是非穩定的。 比如:一組數排序前是a1,a2,a3,a4,a5,其中a2=a4,經過某種排序後為a1,a2,a4,a3,a5,則我們說這種排序是穩定的,因為a2排序前在a4的前面,排序後它還是在a4的前面。假如變成a1,a4,a2,a3,a5就不是穩定的了。 2、內排序和外排序 在排序過程中,所有需要排序的數都在記憶體,並在記憶體中調整它們的儲存順序,稱為內排序; 在排序過程中,只有部分數被調入記憶體,並藉助記憶體調整數在外存中的存放順序排序方法稱為外排序。 3、演算法的時間複雜度和空間複雜度
所謂演算法的時間複雜度,是指執行演算法所需要的計算工作量。 一個演算法的空間複雜度,一般是指執行這個演算法所需要的記憶體空間。