选择排序 var arr = [6,5,4,3,2,1,0];//将其从小到大排序 //规则 //1.比较的轮数=数组长度-1 // 2.比较的次数等于数组长度-当前的轮数 for(var i = 0;i < arr.length - 1;i ++){ //被比较数的下标 for(var j = i + 1;j < arr.length;j ++){ if(arr[i] > arr[j]){ var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } alert(arr);
题目: LeetCode题目链接 题目截图:解题步骤: 1.遍历链表,如果发现当前元素和下个元素值相同,就删除下个元素值 2.遍历结束后,返回原链表的头部代码: /*** Definition for singly-linked list.* function ListNode(val) {* this.val = val;* this.next = null;* }*/ /*** @param {ListNode} head* @return {ListNode}*/ var deleteDuplicates = function(head) {let p = head;while (p && p.next) {if (p.val === p.n...
javascript数组方法 == js数组去重 参看如下链接: 1.https://www.cnblogs.com/cauliflower/p/11267809.html 2.https://www.cnblogs.com/zyfeng/p/10541133.html =========================================================== js数组去重 情境: 将数组var arr = [1,1,‘true’,‘true’,true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,‘NaN’, 0, 0, ‘a’, ‘a’,{},{}]中重复的值过滤掉 1、 ES6-set...
如果需要按特定顺序对对象数组进行排序,我们很有可能会直接找个 JS 库来用。其实大可不必,JS 原生中的 Array.sort就能直接一些复杂又漂亮的排序。 本文中,将介绍一些 Array.sort 的常规排序和一些骚操作。 基本数组排序 默认情况下,Array.sort函数将数组中需要排序的每个元素转换为字符串,并按 Unicode 顺序对其进行比较。 const foo = [9, 1, 4, 'zebroid', 'afterdeck']; foo.sort(); // returns [ 1, 4, 9, 'afterdeck', '...
冒泡排序:比较相邻两个项,若 第一个项 大于 第二个项,那么交换他们,元素向上移动一次,直到遍历结束。function bubbleSort(arr) {// 提前存储数组的长度 避免每次遍历都读这个值let { length } = arr// 开始一个外层循环,代表每次取下标为 i 的元素作为第一项 for (let i = 0; i < length; i++) {// 开始一个内循环,代表每次取下标为 j 的元素作为第二项; 直至内循环迭代完,外循环迭代一次,再进入内循环迭代一轮, 首次跳过...
01、 冒泡排序算法冒泡排序(Bubble Sort)是一种简单直观的排序算法。冒泡排序算法的步骤描述如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。JavaScript实现冒泡排序算法的代码如下: ...
冒泡排序从前两个数开始,两两相比,较小的数放在前面。插入排序从第二个数开始,和前面的数对比,如果较小就交换位置,直到比前面的数大就停下来。选择排序从第一个数开始,循环对比其他所有的数,和比自己小的数交换位置。归并排序将原数组用二分法一直分到两个数为一组,然后通过比较将较小的数放到前面(通过一个中间数组排序);然后一层层向上排序。(就是两个数比较进行排序,然后两组(四个数)进行比较排序,然后两组(八...
普通排序 const arr = [] arr.sort((x, y) => x.prop - y.prop)中文属性值排序 const arr = [] arr.sort((x, y) => x.typeName.localeCompare(y.typeName))
JavaScript数组的简单排序 前面的博客分两章分别讲解了数组对象的基本属性和方法,以及数组迭代方法的使用。今天我们再来讲一讲数组的排序问题。 1.数组的sort()方法 说到数组的排序,大家可能第一反应是前面学过一个数组排序的方法sort(),但是使用这个方法时要注意,sort()本身时可以传参数的,如果不传参数,那我们对数组项进行排序时就会按照ASCII字符顺序排序(也可以理解为字典的排序方式)。比如:var arr=["a","A",10,1,20,2]...
冒泡排序很简单,两重循环即可。今天有伙伴问起原理,用一个图详细解释其冒泡原理。 核心原理是:把每一个元素和数组中的每一个元素进行位置比较,如果满足移动的条件,相比较的两个元素交换位置(冒泡) 先撸代码,代码简短:/*** 数组的冒泡排序* @param {array} arr * @author xinxiang84@126.com*/ function bubbleSort(arr) {for( let i=0; i<arr.length; i++ ) {for(let j=0; j<arr.length; j++) {// 比较大小,交换顺序,也...
写一个自定义的数组排序,可以自己制定数组的排序规则: <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head><body><script>// 数组通用排序// arr:一个数组;compare:自定义比较函数function arraySort(arr, compare) {// 冒泡排序,升序for (var i = 1; i < arr.length; i++) {for (var j = 0; j < (arr.le...
1.快速排序有多重要? 快速排序几乎可以说是目前所有排序算法中,最快的一种排序算法。(当然,没有任何一种算法在任意情况下都是最优的。比如:希尔排序确实在某些情况下可能好于快速排序,但大多数情况下,快速排序还是比较好的选择~) 2.快速排序的思想: 先来回忆一下冒泡排序的思路:对于未排序的各元素依次比较相邻两个元素大小关系;如果左边的数大,则两元素交换位置,向右移动一个位置,比较下面两个元素;当走到最右端时...
1、冒泡排序 冒泡算法是比较相邻的两项,如果前者比后者大,就交换他们。 假设一共有n项,那么一共需要n-1趟,第一趟需要交换n-1次,但是第一趟结束后,最后一项基本确定就是最大项了,所以第二次需要交换n-2次,第i次交换n-i次。这种排序最好情况下时间复杂度是O(n),一般情况下时间复杂度是O(n2),最差情况下也是O(n2)。这里是代码演示: 冒泡排序 2、选择排序 选择排序是找到最小的一项,然后和第一项交换位置,然后找到第二小的和...
一、冒泡排序的原理(从小到大) 相邻两个数进行比较,如果前一个数大于后一个数,那么就交换,否则不交换 原理剖析 比如有一组含有6个数字的数:5、3、7、2、1、6一共6个数字,做5次循环,每次循环相邻两个数都会进行一次比较。 第一次循环:把最大的7放在了最后 第二次循环:7已经放在了最下面,不用再比较了。上面的重新排序把最大的6最后也就是放在了7的上面 第三次循环:6、7已经放在最下面,不用再次比较。上面的重新...
// 快速排序算法:关键在于定义基准元素,头尾元素与基准元素对比,定义头尾元素下标,头小右移,头大停止,尾大左移,尾小停止,头大尾小元素交换function partition(arr, startIndex, endIndex) {var pivot = arr[startIndex];var left = startIndex;var right = endIndex;while (left != right) {while (left < right && arr[right] > pivot) {right--;}while (left < right && arr[left] <= pivot) {left++;}if (left < right)...