博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法
阅读量:6495 次
发布时间:2019-06-24

本文共 1707 字,大约阅读时间需要 5 分钟。

## 冒泡排序冒泡排序,。```/** * 冒泡排序: * 思想:当前项和后一样进行比较,如果当前项大于后一项,两者交换位置 * 平均的时间复杂度为:O( n^2 ) */var originArr = [199, 34, 29, 432, 123, 20, 10, 9, 8]function sort (array, type) {  //type 0: 升序  1:降序   不传默认是升序  //使用双循环去遍历数组,第一个循环取 array 的一个数据,第二个循环拿上个循环数据的后面一个数据,两个数据进行比较。  for (var i = 0; i < array.length; i++) {    for (var j = i + 1; j < array.length; j++) {      if (array[i] > array[j]) {        //如果 array[i] > 
arr[j]) { [min, arr[j]] = [arr[j], min]//交换两个元素的位置 } } arr[i] = min } return arr}getArr(originArr)```## 简单选择排序```/** * 简单选择排序 * 思想:从一组元素中,选出最小的放在第一个位置,然后再从剩下的元素中,选出最小的,放在第二个位置上。 * * 时间复杂度:O(n^2) * */var originArr = [12, 43, 23, 542, 214, 5, 3, 32, 23]function getArr (arr) { var arrLength = arr.length; for (let i = 0; i < arrLength - 1; i++) { let num = i for (var j = i + 1; j < arrLength; j++) { if (arr[i] > arr[j]) {//寻找最小值 num = j//保存最小值的索引 } } if (num != i) { let temp = arr[i]; arr[i] = arr[num]; arr[num] = temp; } } return arr}getArr(originArr)result:[3, 23, 12, 43, 32, 5, 23, 214, 542]```### 希尔排序```var originArr = [12, 43, 23, 542, 214, 5, 3, 32, 23]function getArr (arr) { var len = arr.length, temp, footLang = 1; while (footLang < len / 3) { footLang = footLang * 3 + 1; } for (footLang; footLang > 0; footLang = Math.floor(footLang / 3)) { for (var i = footLang; i < len; i++) { temp = arr[i]; for (var j = i - footLang; j >= 0 && arr[j] > temp; j -= footLang) { arr[j + footLang] = arr[j]; } arr[j + footLang] = temp; } } return arr;}getArr(originArr)```发现一篇好文章,推荐文章:http://louiszhai.github.io/2016/12/23/sort/#%E5%B8%8C%E5%B0%94%E6%8E%92%E5%BA%8F复制代码

转载地址:http://dtuyo.baihongyu.com/

你可能感兴趣的文章
删除 mac 垃圾桶内清除不掉的文件
查看>>
【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
查看>>
/bin/bash^M: bad interpreter: No such file or dire
查看>>
python xml rpc
查看>>
Java设置以及获取JavaBean私有属性进阶
查看>>
db2表结构导出导入,数据库备份
查看>>
策略模式
查看>>
第二 周作业总结
查看>>
OrderOnline——项目概述
查看>>
POJ-2739(Water)
查看>>
【转】第三节 UNIX文件系统结构
查看>>
为什么sql里面not in后面的子查询如果有记录为NULL的,主查询就查不到记录
查看>>
Angular7里面实现 debounce search
查看>>
Linux 内核链表
查看>>
git学习------>Git 分支管理最佳实践
查看>>
括号和出栈所有序列问题
查看>>
第一次操刀数据库分表的教训与经验
查看>>
录音声音小
查看>>
Ubuntu 12.04 安装 Chrome浏览器
查看>>
java 反射
查看>>