基础排序算法
铉和
学生一枚
展开
-
快速排序JS实现
快速排序 /* 1. 首先,从数组中选择一个值作为主元(pivot),简单起见选开头的元素 2. 创建2个(指针)引用,左边一个指向数组第一个值,右边一个指向数组最后一个值, 先移动右指针,寻找一个比主元小的值,然后把值赋给左指针的指向 再移动左指针,寻找一个比主元大的值,然后把值赋给右指针的指向 交替移动左右指针 这样下来,把比主元小的数都放到主元左边,比主元大的数都放到主元的右边。这一步叫做划分操作。 然后对主元左边和右边的小数组,接着进分别行划分操作,直至数组已完全排序。 */ function原创 2021-11-13 21:01:49 · 825 阅读 · 0 评论 -
归并排序JS实现
归并排序 // 合并 function merge(arr, tempArr, left, mid, right) { // 标记左半区第一个未排序的元素 let l_pos = left; // 标记右半区第一个未排序的元素 let r_pos = mid + 1; // 临时数组元素的下标 let pos = left; // 合并 while (l_pos <= mid && r_pos <= right)原创 2021-11-12 21:28:16 · 845 阅读 · 0 评论 -
插入排序JS实现
插入排序 /* 它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。 在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素, 内层循环对当前元素前面有序表进行待插入位置查找,并进行移动 */ function insertionSort(arr){ let value; for(let i = 1;i<arr.length;i++){ value = arr[i];//这次循环寻找value的插入位置 f原创 2021-11-12 08:10:59 · 652 阅读 · 0 评论 -
选择排序JS实现
选择排序 /* 选择排序算法是一种原址比较排序算法。 选择排序大致的思路是找到数据结构中的最小值并将其放在第一位, 接着找到第二小的值并将其放在第二位,以此类推。 */ function selectionSort(arr){ let len = arr.length; for(let i = 0;i<len-1;i++){ let minValue = arr[i];//每次循环中的最小值 let minIndex = i;//每次循环中最小值的下原创 2021-11-11 21:04:31 · 384 阅读 · 0 评论 -
冒泡排序JS实现
冒泡排序 /* 冒泡排序比较所有相邻的两个项, 如果第一个比第二个大,则交换它们。 元素向上移动至正确的顺序。 */ function bubbleSort(arr) { let l = arr.length; let cnt = ''; for (let i = 0; i < l; i++) { let flag = false; //当一次循环中没有发生交换时,以为着全部的数据都已经有序,不用继续排序了 for (let j原创 2021-11-11 21:00:26 · 379 阅读 · 0 评论