js的排序方法集合

2022-01-16 08:09:51 字數 1685 閱讀 3561

a

1

array.prototype.swap

=function

(i, j)27

//氣泡排序 時間複雜度o(n^2) 空間複雜度o(1)

8array.prototype.bubblesort

=function()9

16}17}

18//

選擇排序 時間複雜度o(n^2) 空間複雜度o(1)

19array.prototype.selectionsort

=function

()20

28this

.swap(i, index);29}

30}31//

插入排序 時間複雜度o(n^2) 空間複雜度o(1)

32array.prototype.insertionsort

=function

()33

42this

[j]

=value;43}

44}45//

希爾排序

46array.prototype.shellsort

=function

()47

60this

[k]

=value;61}

62}63}

64}65//

快速排序 時間複雜度o(n*log(n))

66array.prototype.quicksort

=function

(s, e)

6777

this

.quicksort(s, index -1

);78

this

.quicksort(index +1

, e);79}

80//

棧快速排序

81array.prototype.stackquicksort

=function

()82

94stack.push(s, index -1

, index +1

, e);95}

96}97//

歸併排序 時間複雜度o(n*log(n)) 空間複雜度o(n)

98array.prototype.mergesort

=function

(s, e, b)

99111

for(

vari

=s; i

<=

e; ++

i) this

[i]

=b[i];

112}

113//

堆排序 時間複雜度o(n*log(n))

114array.prototype.heapsort

=function

()115

123}

124for

(vari =

this

.length -1

; i

>0;

--i)

125133

}134

}

氣泡排序,插入排序,選擇排序的時間複雜度是o(n^2)

歸併排序,堆排序,快速排序的時間複雜度都是o(n*log(n))

空間複雜度氣泡排序,插入排序,選擇排序都是o(1)

歸併排序為o(n)

集合排序的方法

訊息重新排序,按照msgid,由小到大的順序 聊天視窗適用的排序方式 class messagesort comparator msg1.messageid msg2.messageid else 訊息重新排序,按照msgid,由大到小的順序 開播提醒介面適用的排序方式 class reversem...

List集合排序的方法

1 list集合中的物件實現comparable介面 public class user implements comparable 測試類實現list按照實體類的age欄位排序 public static void main string args 列印結果為 2 2343 還可以根據lsit集合...

C IList集合擴充套件方法 集合排序

在平常開發中,經常要遇到集合排序的功能,可以用集合自帶的sort 或者orderby方法進行排序,但是要自定義比較器,每次使用都比較麻煩,所以就自己琢磨寫了個集合的擴充套件方法,專門用來排序集合,起名叫做 orderbyfield 方法有兩個引數,ordername 和 order,前者是要排序的欄...