生活随笔
收集整理的這篇文章主要介紹了
排序方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、快速排序
public static int[] quickSort2(int[] a
) {qSort(a
, 0, a
.length
- 1);return a
;}public static void qSort(int[] sequence
, int low
, int high
) {int pivot
= sequence
[low
]; int left
= low
, right
= high
;if (low
>= high
) {return;}swap(sequence
, low
, high
); while (true) {while (low
< high
&& sequence
[low
] <= pivot
) {low
++;}while (low
< high
&& sequence
[high
] >= pivot
) {high
--;}if (low
< high
) {swap(sequence
, low
, high
);} else {break;}}swap(sequence
, low
, right
); qSort(sequence
, left
, low
- 1);qSort(sequence
, low
+ 1, right
);}
二、歸并排序
public static int[] mergingSort(int[] a
) {if (a
.length
> 0) {mergingSortRecursion(a
, 0, a
.length
- 1);}return a
;}public static void mergingSortRecursion(int[] data
, int left
, int right
) {if (left
< right
) {int middle
= (left
+ right
) / 2;mergingSortRecursion(data
, left
, middle
);mergingSortRecursion(data
, middle
+ 1, right
);merge(data
, left
, middle
, right
);}}public static void merge(int[] data
, int left
, int middle
, int right
) {int[] tempArray
= new int[data
.length
];int i
= left
; int j
= middle
+ 1; int k
= left
; while (i
<= middle
&& j
<= right
) {if (data
[i
] <= data
[j
]) {tempArray
[k
++] = data
[i
++];} else {tempArray
[k
++] = data
[j
++];}}while (j
<= right
) {tempArray
[k
++] = data
[j
++];}while (i
<= middle
) {tempArray
[k
++] = data
[i
++];}while (left
<= right
) {data
[left
] = tempArray
[left
++];}}
總結
以上是生活随笔為你收集整理的排序方式的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。