JavaScript经典排序算法
冒泡排序
for循环
1 | var numbers = [44, 26, 69, 28, 78, 456, 85, 84, 9, 6, 66];
|
2 | function bubbleSort(items) {
|
3 | var len = items.length, i, j, stop;
|
4 | var isSort = true;
|
5 |
|
6 | for (i = 0; i < items.length; i++) {
|
7 |
|
8 | for (j = 0, stop = len - i; j < stop; j++) {
|
9 |
|
10 | if (items[j] > items[j + 1]) {
|
11 |
|
12 | isSort = false;
|
13 | var tmp = items[j];
|
14 | items[j] = numbers[j + 1];
|
15 | numbers[j + 1] = tmp;
|
16 | }
|
17 | }
|
18 | if (isSort) {
|
19 | break;
|
20 | }
|
21 | }
|
22 | return items;
|
23 | }
|
24 | console.log(bubbleSort(numbers));
|
ES6解构赋值
1 | let numbers = [44, 26, 69, 28, 78, 456, 85, 84, 9, 6, 66];
|
2 | const bubbleSort = (items) => {
|
3 | let len = items.length, i, j, stop;
|
4 | let isSort = true;
|
5 | for (i = 0; i < items.length; i++) {
|
6 | for (j = 0, stop = len - i; j < stop; j++) {
|
7 | if (items[j] > items[j + 1]) {
|
8 | isSort = false;
|
9 | [items[j], items[j + 1]] = [items[j + 1], items[j]];
|
10 | }
|
11 | }
|
12 | if (isSort) {
|
13 | break;
|
14 | }
|
15 | }
|
16 | return items;
|
17 | };
|
18 | console.log(bubbleSort(numbers));
|