Skip to content

Commit 45d45d5

Browse files
committed
Create 快速排序
1 parent 4296f77 commit 45d45d5

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

快速排序

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
*几种排序算法
3+
*@TangGuichuan
4+
*
5+
*/
6+
7+
8+
/**
9+
* 选择排序 http://zh.wikipedia.org/wiki/选择排序
10+
* 原理:在未排序的序列中找到最大(小)的元素与第1个元素交换,
11+
* 在剩余元素中继续找最大(小)的元素与第2个元素交换,
12+
* 以此类推,直到排序完毕
13+
*/
14+
15+
function selectionSort(arr){
16+
var
17+
i = arr.length - 1,
18+
j,
19+
special; //最大或最小值的位置
20+
21+
// 采用倒序,提高查找性能
22+
for (; i >= 0; i--) {
23+
special = i;
24+
25+
for (j = i - 1; j >= 0; j--) {
26+
27+
// 正序与倒序取决于这里的判断,max or min
28+
if(arr[special] < arr[j]){
29+
// 当前的最值位置
30+
special = j;
31+
}
32+
}
33+
34+
// 最值与当前位置的值交换位置
35+
arr[special] = [arr[i], arr[i] = arr[special]][0];
36+
}
37+
38+
return arr;
39+
}

0 commit comments

Comments
 (0)