JS中的排序法_上

在Day7时候有提到排序法的简介,并且简介常见的6个演算法,在Icebear学习5天JS语法之後,在今天和明天两天利用node.js实做这些排序法


泡沫排序(BubbleSort)
运作方式 :

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最後一对。这步做完後,最後的元素会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最後一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
    这边使用了双层的回圈,内层回圈实作步骤 1、步骤 2 ;外层回圈则实作步骤3 ,确保所有元素都能经过排序。
    执行过程 :
    https://ithelp.ithome.com.tw/upload/images/20211001/20140497ubcs6clHxG.png
    https://ithelp.ithome.com.tw/upload/images/20211001/20140497HmvuLK1RUh.png

选择排序(SelectionSort)
运作方式 :

  1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
  2. 然後,再从剩余未排序元素中继续寻找最小(大)元素,然後放到已排序序列的末尾。
  3. 以此类推,直到所有元素均排序完毕。
    我们扫描整个输入数值,并且对於每个元素 - 我们在排序最後的数值中找到最小的数字。如果最小的数字不是未排序子数组中的第一个(不在它的位置),我们将它与未排序子数组的第一个元素交换。
    执行过程 :
    https://ithelp.ithome.com.tw/upload/images/20211001/201404971hz2CzJyDv.png

https://ithelp.ithome.com.tw/upload/images/20211001/20140497zkotOzAzUg.png


插入排序(InsertionSort)
运作方式:

  1. 从第一个元素开始,该元素(A)可以认为已经被排序
  2. 取出下一个元素,在已经排序的元素序列中从後向前扫描
  3. 如果A大於新元素,将A移到下一位置
  4. 重复步骤3,直到找到已排序的元素小於或者等於新元素的位置(X)
  5. 将新元素插入到X後
    arr[j + 1] 的部份可能比较难懂一点点。当使用 j — 向下移动数组的长度时,j 变数正在递减。当不再比较两个数中较小的那个特定值时,for 循环停止 ; j 变数被保留,之後j+1 索引指的是临时变量不再小於我们正在检查值的位置。
    执行过程 :
    https://ithelp.ithome.com.tw/upload/images/20211001/20140497fYZ8rkCZjm.png
    https://ithelp.ithome.com.tw/upload/images/20211001/201404975Vo1rDJ5aN.png

<<:  Angular 深入浅出三十天:表单与测试 Day16 - Template Driven Forms vs Reactive Forms

>>:  Day_19 htop

IOS、Python自学心得30天 Day-13 模组训练改善-5

前言: 藉由训练过程中的检查点纪录,可以知道此模型的训练次数,不过若不是特别需要,平常可以注解掉,让...

.Net Core Web Api_笔记18_api结合ADO.NET资料库操作part6_新闻文章表格陈列查询

由前面几个开发方式可以渐渐了解到前後端分离的开发方式 接着我们要进行新闻文章表格陈列 在Contro...

创建App第一步

建立了全新的Xcard专案,并在Main.storyboard界面页中拖拉数个Image View用...

Day14-旧网站重写成Vue_5_多图片切换

昨天PO完文重看一下旧文才发现前天说要讲json做轮播,结果昨天先讲了tab…. 希望今天能讲完轮播...

Day10 - 补漏

今天事情比较多,没啥进度,就先对先前的内容补点漏洞。 登入 进站画面除了Day07的几个Patter...