Skip to content

Commit 7a3bbf9

Browse files
committed
fix Aha-Algorithms chapter1
1 parent 6a90f22 commit 7a3bbf9

File tree

4 files changed

+44
-24
lines changed

4 files changed

+44
-24
lines changed

Aha-Algorithms/chapter1/1.2 sort_bubble.js

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,14 @@ console.log('排序数组', arr);
1919
* @returns {Array}
2020
*/
2121
function bubbleSort(arr) {
22-
let len = arr.length;
23-
for (let i = 0; i < len - 1; i++) {
24-
for (let j = i + 1; j < len; j++) {
25-
if (arr[i] > arr[j]) {
26-
[arr[i], arr[j]] = [arr[j], arr[i]]
27-
}
28-
}
29-
}
30-
return arr;
31-
}
32-
33-
/**
34-
* 冒泡排序,从小到大排序,把最大的数放到末尾
35-
* @param arr
36-
* @returns {Array}
37-
*/
38-
function bubbleSort2(arr) {
39-
let len = arr.length;
40-
for (let i = 0; i < len - 1; i++) {
41-
for (let j = 0; j < len - i - 1; j++) {
42-
if (arr[j] > arr[j + 1]) {
22+
let length = arr.length;
23+
for (let i = 0; i < length - 1; i++) {
24+
for (let j = 0; j < length - 1 - i; j++) {
25+
if (arr[j] > arr[j + 1]) { // 修改这判断,可以改成从大到小排序
4326
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
4427
}
4528
}
4629
}
47-
return arr;
30+
return arr
4831
}
4932

Aha-Algorithms/chapter1/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
由于算法复杂度高,但是比较容易掌握,一般都作为入门算法,我反正大学毕业了也只会这一种,正式场合慎用。
2727

28+
> 我多实现了一种算法 sort_selection.js `选择排序`,用于跟冒泡排序比较,方便理解区分这两种算法
2829
2930
## 快速排序
3031

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* 选择排序
3+
*/
4+
"use strict";
5+
6+
const util = require('../../util.js');
7+
8+
let arr = util.randomArray(4, 99, 20);
9+
10+
console.log('随机数组', arr);
11+
12+
arr = selectionSort(arr);
13+
14+
console.log('排序数组', arr);
15+
16+
/**
17+
* 选择排序,从小到大排序,把最小的数先提到开头
18+
* @param arr
19+
* @returns {Array}
20+
*/
21+
function selectionSort(arr) {
22+
let len = arr.length;
23+
for (let i = 0; i < len - 1; i++) {
24+
for (let j = i + 1; j < len; j++) {
25+
if (arr[i] > arr[j]) {
26+
[arr[i], arr[j]] = [arr[j], arr[i]]
27+
}
28+
}
29+
}
30+
return arr;
31+
}
32+
33+

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@
1010
> [Leetcode Solutions with JavaScript](https://github.com/hanzichi/leetcode)
1111
> [LeetCode-in-Go](https://github.com/aQuaYi/LeetCode-in-Go)
1212
13-
工具
13+
工具
1414
> [leetcode cli](https://github.com/skygragon/leetcode-cli) 针对 https://leetcode.com/ 使用
1515
16-
目录
16+
目录
1717
- [《啊哈!算法》代码 JS 实现](./Aha-Algorithms)
1818
- [《算法图解》代码 JS 实现](./Grokking-Algorithms)
1919
- [ LeetCode Algorithms ](./LeetCode)
2020
- [ 笔记 Notes ](./notes)
2121

22+
使用
23+
由于运行代码依赖工具类 util.js,LeetCode/leetcode.js ,所以需要先安装依赖包,在根目录执行 `yarn install` 即可
24+

0 commit comments

Comments
 (0)