美文网首页
数组的排序算法的实现

数组的排序算法的实现

作者: 鲍先森 | 来源:发表于2017-07-04 00:01 被阅读0次

数组的排序算法

关于排序算法请看这篇文章
本文尝试使用js来实现一部分简单的算法。

选择排序

思路:若要从小到大排序,指定索引为1的数值,与其后面的数值一一比较,将较小的数值置于该位置,再次指定索引为2的数值,与其后面的数值比较,同样将较小数组置于该位置,然后依次指定之后的索引位置,执行同样的操作,直到最后遍历结束。
function selectSort(arr){ for(var i = 0;i<arr.length;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] = arr[i] } } } return arr; }

冒泡排序

思路:遍历数组,通过比较两个数大小互换位置,将最大的数排列到数组的末尾,再次遍历将第二大数排列到数组的倒数第二位,依次遍历直到最后
function bubbleSort(arr){ for(var i=0;i<arr.length;i++){ for(var j=0;j<arr.length-i;j++){ if(arr[j] > arr[j+1]){ var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } return arr; }

快速排序

实现思路:取数组中间数为基准,遍历数组时将小于基准的数大于基准的数分组存放两个不同的数组,递归,将两个数组再次执行上面操作直到数组的长度为1,操作完成后由小到大进行拼接。
function fastSort(arr){ if(arr.length <= 1){ return arr; } //新建两个数组存放 var fontArr =[], endArr = []; //初始基准位置 var index = Math.floor(arr.length/2); baseVal = arr.splice(index-1,1); for(var i=0;i<arr.length;i++){ if(arr[i] > baseVal){ endArr.push(arr[i]) }else { fontArr.push(arr[i]) } } return arguments.callee(fontArr).concat(baseVal,arguments.callee(endArr)); }

插入排序

实现思路:从前向后遍历数组,遍历某个数值时,将其与前一数值进行比较,若大于前一个数值,则不做处理,若小于则互换位置后在与前一数值进行比较,直到大于前一数值或到数组的开头。
function insertSort(arr){ for(var i = 0;i<arr.length;i++){ var temp = arr[i]; var j = i-1; while(temp < arr[j]){ arr[j+1] = arr[j]; j--; if(j == -1){ break; } } arr[j+1] = temp; } return arr; }
以上排序方法经测试可用,不保证唯一性,后续还会更新其他排序方法。

相关文章

  • 快速排序(Java)

    快速排序算法思想: (1)输入的数据信息:输入一个待排序的数组a[n],利用QuickSort算法实现此数组的排序...

  • 手撕代码 之 快速排序

    1.实现快速排序算法 问题描述给定一个无序数组int[ ] a,使用快速排序算法进行排序。 解题思路对于快速排序,...

  • 堆排序

    堆排序算法利用堆的结构来执行快速排序。 为了实现从最低到最高排序,堆排序首先将未排序的数组转换为最大堆,以便数组中...

  • QuickSort算法实现Java版

    快速排序算法实现,实质是采用了递归算法(调用栈),对于数组排序,主要在于找到基线条件即数组剩余0或1个元素,这也是...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 数组的排序算法的实现

    数组的排序算法 关于排序算法请看这篇文章。本文尝试使用js来实现一部分简单的算法。 选择排序 思路:若要从小到大排...

  • Swift3.0 数组和字典的排序问题

    简单的实现swift中字典和数组内部排序问题,不用再单独写一个算法来实现排序了,简单快捷~ 1.数组元素从小到大排...

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • PHP常用数组排序算法

    title: PHP常用数组排序算法tags: [PHP,数组,排序,算法] 这几天写到的代码中,用到了许多对数组...

  • 排序图解:js排序算法实现

    之前写过js实现数组去重, 今天继续研究数组: 排序算法实现。 排序是数据结构主要内容,并不限于语言主要在于思想;...

网友评论

      本文标题:数组的排序算法的实现

      本文链接:https://www.haomeiwen.com/subject/irizcxtx.html