Skip to content

Commit

Permalink
fix:修改排序
Browse files Browse the repository at this point in the history
  • Loading branch information
hejialiang committed Aug 19, 2021
1 parent afa1553 commit e627cc5
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 31 deletions.
42 changes: 26 additions & 16 deletions docs/algorithm/sort.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@

### 2.1 冒泡排序

#### :tomato: 个人理解:比较2个元素,如果顺序错误就把他们交换过来,这个名字的由来就是较小的元素由于交换慢慢“浮”到数列的顶端
#### 个人理解:

比较2个元素,如果顺序错误就把他们交换过来,这个名字的由来就是较小的元素由于交换慢慢“浮”到数列的顶端,它的特点是每一次排序完;右边的总是最大的数值。

#### :tomato: 大佬理解:冒泡 排序 是比较形象的 一种排序算法, 就像小气泡在水底不断往上冒泡,直到变大。那他的算法过程就是这样的,依次比较俩个相邻的节点,然后将较大的放置在后,较小的放置在前,直到排序完成
#### 大佬理解:

#### :tomato: 算法步骤:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
冒泡 排序 是比较形象的 一种排序算法, 就像小气泡在水底不断往上冒泡,直到变大。那他的算法过程就是这样的,依次比较俩个相邻的节点,然后将较大的放置在后,较小的放置在前,直到排序完成

- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
#### 算法步骤:

- 针对所有的元素重复以上的步骤,除了最后一个
- 比较相邻的元素,如果第一个比第二个大,就交换它们的位置

- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
- 对每对相邻元素作同样的工作,这步做完后,最后的元素会是最大的数

#### :tomato: 菜鸟教程给出生动的展示图:[点击我](https://www.runoob.com/w3cnote/bubble-sort.html)
- 针对所有的元素重复以上的步骤,除了最后一个。直到没有任何一对数字需要比较。
#### 菜鸟教程给出生动的展示图:[点击我](https://www.runoob.com/w3cnote/bubble-sort.html)

#### :tomato: 案例: 给数组`[2,4,3,5,1,5]`进行排序
#### 案例: 给数组`[2,4,3,5,1,5]`进行排序
``` javascript
let arr = [2,4,3,5,1,5]
// 正向遍历
Expand Down Expand Up @@ -58,17 +60,25 @@
//2个方法都会循环10次
```
### 2.2 插入排序
#### :tomato: 个人理解:先把第二元素存起来,然后跟前面的元素进行比较,如果符合规则就插入比较元素的前面或后面;然后在把第3个元素存起来,在跟前面的元素进行比较,如果符合规则就插入比较元素的前面或后面;以此慢慢递进完成排序
(正序:插入就是每次新取一个数,然后倒序地往前找,找到比它小的就插入后面)
#### 个人理解:

先把第二元素存起来,然后跟前面的元素进行比较,如果符合规则就插入比较元素的前面或后面;然后在把第3个元素存起来,在跟前面的元素进行比较,如果符合规则就插入比较元素的前面或后面;以此慢慢递进完成排序。

(正序:插入就是每次新取一个数,然后倒序地往前找,找到比它小的就插入后面)

#### :tomato: 大佬理解:其实插入排序就和打扑克的时候抓牌一样,新摸一张,然后再已排好的队列里面去插入他
#### 大佬理解:

其实插入排序就和打扑克的时候抓牌一样,新摸一张,然后再已排好的队列里面去插入它。

#### :tomato: 算法步骤:将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。
#### 算法步骤:

将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

#### :tomato: 菜鸟教程给出生动的展示图:[点击我](https://www.runoob.com/w3cnote/insertion-sort.html)
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。

#### :tomato: 案例: 给数组`[2,4,3,5,1,5]`进行排序
#### 菜鸟教程给出生动的展示图:[点击我](https://www.runoob.com/w3cnote/insertion-sort.html)

#### 案例: 给数组`[2,4,3,5,1,5]`进行排序
``` javascript
function insertionSort (src) {
let arr=[...src]
Expand Down
28 changes: 13 additions & 15 deletions html/test.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
let usecallback
let count = {a:1}
function fn (params) {
const data=count
console.log('----',data)
if(usecallback){
usecallback()
}else {
usecallback=()=>{
console.log(data.a)
}
usecallback()
const arr = [5,6,2,8,4,3,1]
let max
for(let i=0;i<arr.length-1;i++){
console.log(arr)
for(let j=0;j<arr.length-1-i;j++){

if(arr[j]>arr[j+1]){
max=arr[j]
arr[j]= arr[j+1]
arr[j+1]=max
}
}
}
fn()
count.a=2
fn()

console.log('arr',arr)

0 comments on commit e627cc5

Please sign in to comment.