基本算法
奇维
前端程序员之路,到底能走多远...
展开
-
快速排序
快速排序算法思想代码实现运行结果测试 算法思想 在待排序的数组中选取一个作为基准元素,基准元素任意取,这里选择数组中间的元素作为基准,遍历数组中的其他元素,把小于基准元素的放在基准元素左边,大于基准元素的放在基准元素的右边,然后对基准元素两边的序列分别执行上面的操作,可以考虑使用递归,就这样一直划分下去,直到划分后的序列左右两边都只有一个元素,此时就得到了排序后的序列。 代码实现 function quick(a) { if(a.length<=1){ retu原创 2020-09-14 18:06:20 · 74 阅读 · 0 评论 -
选择排序
选择排序算法思想代码实现执行结果验证 算法思想 对于一个数组arr,执行arr.length-1趟,每一趟都在数组中找到最小元素,然后将这一趟得到的最小元素与数组从下标为0开始依次交换,而经过交换,放到数组前面的元素,不参与后面的比较。经过arr.length-1趟的比较,数组的元素都找到自己合适的位置。 代码实现 function selectSort(arr) { //执行arr.length-1趟 for(let i=0;i<arr.length-1;i++){原创 2020-09-09 22:06:18 · 95 阅读 · 0 评论 -
冒泡排序
冒泡排序基本原理代码实现运行结果验证 基本原理 假如是对一组数据从小到大排列,依次比较两个相邻的元素,如果前者大于后者,就交换这两个元素,保证每次比较后,两个数之间的较大者在后面,等到第一趟比较完之后,数组的最后一个元素就是该数组中的最大值,所以下一次比较时最后一个元素不参与,每一趟比较完都会找到一个本趟的最大值,这些值都不参与后面的比较,随着趟数的增加,需要比较的元素越来越少,直到最后一趟比较完第一个和第二个元素后,结束。此时就得到排序后的数组。 代码实现 function bubbleSort(arr)原创 2020-09-08 22:58:56 · 97 阅读 · 0 评论 -
插入排序
插入排序 面试中遇到,30分钟实现冒泡排序、选择排序、插入排序以及快速排序,学过的好久没看,当时忘了,只实现了冒泡和选择,所以对这几种排序算法分别温习一下,加深印象。 基本原理 把数组分为两部分,一部分是已排好序的(刚开始只有数组的第一个元素,后面会不断增加),另一部分是未排好序的,遍历未好排序的元素,在已排好序的元素中找到合适的位置,不断扩充已排序的部分,直到未排序的元素都加入到已排好序的那一部分中。 代码实现 function insert_sort(a){ let preInde原创 2020-09-06 23:58:01 · 80 阅读 · 0 评论