这篇文章主要知识点是关于JS排序、sort、bubble、select、insert、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
最近开始学习数据结构。
一点一点整理,希望能坚持下来。
因为方向是前端,所以用JavaScript实现。
//sort排序 var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]; var testArr2=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]; var testArr3=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]; testArr1.sort();//排序结果:[15, 19, 2, 26, 27, 3, 36, 38, 4, 44, 46, 47, 48, 5, 50] testArr2.sort(function(a,b){return a>b});//排序结果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50] testArr3.sort(function(a,b){return a-b});//排序结果:[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
//Bubble排序
var testArr1=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]; var testArr2=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]; function bubbleSort1(array){ for(i=array.length-1;i>0;i--){ for(j=0;j<i;j++){ if(array[j+1]<array[j]){ var temp=array[j+1]; array[j+1]=array[j]; array[j]=temp; } } } } function bubbleSort2(array){ for(i=array.length-1;i>0;i--){ for(j=0;j<i;j++){ if((array[j+1]-array[j])<0){ var temp=array[j+1]; array[j+1]=array[j]; array[j]=temp; } } } } bubbleSort1(testArr1);//排序结果:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50] bubbleSort2(testArr2);//排序结果:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]
//Select排序
var testArr=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]; function selectSort(array){ for(i=0;i<array.length;i++){ var slc=array[i];//初始时设未排序的第一个值为选中值 var slcIdx;//记录一次循环后作为选中值的index for(j=i;j<array.length;j++){ if(array[j]<slc){ slc=array[j]; slcIdx=j; } } if(slc!=test[i]){//如果最后作为选中值的值和初始slc值不相等 var temp=array[i]; array[i]=array[slcIdx]; array[slcIdx]=temp; } } } selectSort(testArr);//排序结果是:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]
//Insert排序
var testArr=[3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]; function insertSort(array){ for (var i = 0 ; i < array.length-1; i++) {//注意i小于数组的长度-1,否则会造成数组越界,形成死循环 var curElement=array[i+1]; for (var j = i; j >= 0; j--) { if(curElement<array[j]){ array[j+1]=array[j]; if(j==0){//当j==0时,说明已经排到了数组的最开头 array[0]=curElement; } }else{ array[j+1]=curElement; break; } }; }; } insertSort(testArr);//排序结果是:[2,3,4,5,15,19,26,27,36,38,44,46,47,48,50]
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
Copyright 2018-2020 www.xz577.com 码农之家
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
JS中的算法与数据结构之常见排序(Sort)算法详解
本文实例讲述了JS中的算法与数据结构之常见排序(Sort)算法。分享给大家供大家参考,具体如下: 排序算法(Sort) 引言 我们平时对计算机中存储的数据执行的两种最常见的操作就是排序和查找,对于计算机的排序和查找的研究,自计算机诞生以来就没有停止过。如今又是大数据,云计算的时代,对数据的排序和查找的速度、效率要求更高,因此要对排序和查找的算法进行专门的数据结构设计,(例如我们上一篇聊到的二叉查找树就是其中一种),以便让我们对数据的操作更加简洁高效。 这一篇我们将会介绍一些数据排序的基本算法和高级算法并利用JavaScript来逐一实现,让大伙对计算机中常见的排序算法的思想和实现有基本的了解,起到一个抛砖引玉的作用。 关于排序算法的说明 在介绍各个算法之前,我们有必要了解一下评估算法优劣的一些术……
JS实现中文汉字按拼音排序的方法
本文实例讲述了JS实现中文汉字按拼音排序的方法。分享给大家供大家参考,具体如下: 代码1,拼音排序: var array = ['武汉', '北京', '上海', '天津'];var resultArray = array.sort( function compareFunction(param1, param2) { return param1.localeCompare(param2,"zh"); });console.log(resultArray); 火狐浏览器 resultArray 结果为: [ '北京' , '上海' , '天津' ,'武汉' ] ; 代码2,拼音排序并按字母分类: function pySegSort(arr,empty) { if(!String.prototype.localeCompare) return null; var letters = "*abcdefghjklmnopqrstwxyz".split(''); var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split(''); var segs = []; var curr; $.each(letters, function(i){ curr = {letter: this, data:[]}; $.each(arr, function() { if((!zh[i-1] || zh[i-1].localeCompare(this,"zh") = 0) this.localeCompare(zh[i],"zh") == -1) { curr.data.push(this); } }); if(empty || curr.data.length) { segs.push(curr); curr.data.sort(functi……
JS排序算法之冒泡排序,选择排序与插入排序实例分析
本文实例讲述了JS排序算法之冒泡排序,选择排序与插入排序。分享给大家供大家参考,具体如下: 冒泡排序: 对数组的中的数据,依次比较相邻两数的大小。 如果前面的数据大于后面的数据,就交换这两个数。 时间复杂度 O(n^2) function bubble(array){ var temp; for(var i=0; iarr.length; i++){ for(var j=0; jarr.length; j++){ if(arr[j]arr[j+1]){ temp = arr[j+1]; arr[j+1] =arr[j]; arr[j]=temp; } }console.log(arr); }}//冒泡排序 选择排序: 首先从原始数组中选择一个最小的数据,和第一个位置1的数据交换。 再从剩下的n-1个数据中选择次小的数据,将其和第二个位置的数据交换。 不断重复,知道最后两个数据完成交换。 时间复杂度 O(n^2) function selectionSort(array){ var min,temp; for(var i=0; iarray.length-1; i++){ min=i; for(var j=i+1; jarray.length; j++){ if(array[j]array[min]){ min=j; } } swap(array,min,i); } console.log(array);}//选择排……