Skip to content

Commit 84b918f

Browse files
committed
first commit
0 parents  commit 84b918f

2 files changed

Lines changed: 104 additions & 0 deletions

File tree

README.md

Whitespace-only changes.

jsSortAlgorithm.js

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
// 1:冒泡排序
2+
3+
function bubbleSort(arr){
4+
var len = arr.length;
5+
for (var i = len-1; i>=0; i--){
6+
for(var j = 1; j<=i; j++){
7+
if(arr[j-1]>arr[j]){
8+
var temp = arr[j-1];
9+
arr[j-1] = arr[j];
10+
arr[j] = temp;
11+
}
12+
}
13+
}
14+
return arr;
15+
}
16+
17+
// 2:选择排序
18+
19+
function selectionSort(arr){
20+
var minIdx, temp,
21+
len = arr.length;
22+
for(var i = 0; i < len; i++){
23+
minIdx = i;
24+
for(var j = i+1; j<len; j++){
25+
if(arr[j]<arr[minIdx]){
26+
minIdx = j;
27+
}
28+
}
29+
temp = arr[i];
30+
arr[i] = arr[minIdx];
31+
arr[minIdx] = temp;
32+
}
33+
return arr;
34+
}
35+
36+
// 3:插入排序
37+
38+
function insertionSort(arr){
39+
var i, len = arr.length, el, j;
40+
41+
for(i = 1; i<len; i++){
42+
el = arr[i];
43+
j = i;
44+
45+
while(j>0 && arr[j-1]>toInsert){
46+
arr[j] = arr[j-1];
47+
j--;
48+
}
49+
50+
arr[j] = el;
51+
}
52+
53+
return arr;
54+
}
55+
56+
// 4:归并排序
57+
58+
function mergeSort(arr){
59+
var len = arr.length;
60+
if(len <2)
61+
return arr;
62+
var mid = Math.floor(len/2),
63+
left = arr.slice(0,mid),
64+
right =arr.slice(mid);
65+
//send left and right to the mergeSort to broke it down into pieces
66+
//then merge those
67+
return merge(mergeSort(left),mergeSort(right));
68+
}
69+
70+
function merge(left, right){
71+
var result = [],
72+
lLen = left.length,
73+
rLen = right.length,
74+
l = 0,
75+
r = 0;
76+
while(l < lLen && r < rLen){
77+
if(left[l] < right[r]){
78+
result.push(left[l++]);
79+
}
80+
else{
81+
result.push(right[r++]);
82+
}
83+
}
84+
//remaining part needs to be addred to the result
85+
return result.concat(left.slice(l)).concat(right.slice(r));
86+
}
87+
88+
// 5:快排
89+
90+
function(arr) {
91+
  if (arr.length <= 1) { return arr; }
92+
  var pivotIndex = Math.floor(arr.length / 2);
93+
  var pivot = arr.splice(pivotIndex, 1)[0];
94+
  var left = [];
95+
  var right = [];
96+
  for (var i = 0; i < arr.length; i++){
97+
    if (arr[i] < pivot) {
98+
      left.push(arr[i]);
99+
    } else {
100+
      right.push(arr[i]);
101+
    }
102+
  }
103+
  return quickSort(left).concat([pivot], quickSort(right));
104+
};

0 commit comments

Comments
 (0)