博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自学算法笔记
阅读量:6855 次
发布时间:2019-06-26

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

自学算法

function getData (len){  var arr = [];  while (len >= 0) {    arr[len--] = Number((Math.random() * 100).toFixed(0));  }  return arr;}function swap (arr, a, b) {  return [arr[a],arr[b]] = [arr[b],arr[a]];}function quicksort (arr) {  function par (arr, low, high) {    var v = arr[low], i = low + 1, j = high;    while (true) {      while (arr[i] < v) {i++}      while (arr[j] > v) {j--}      if (i < j) {        swap(arr, i, j);        i++;        j--;      } else break;    }    swap(arr, low, j);    return j;  }  function sort(arr, low, high) {    if(low >= high) return;    var i = par(arr, low, high);    sort(arr, low, i - 1);    sort(arr, i + 1, high);  }  sort(arr, 0, arr.length - 1);  return arr;}function insert (arr) {  for(let i = 0, len = arr.length ; i < len ; i++){    for(let j = i ; j > 0 ; j--){      if(arr[j] < arr[j - 1])        swap(arr, j, j - 1);    }  }  return arr;}function choose (arr) {  for(let i = 0, len = arr.length; i < len; i++) {    let min = i;    for(let j = i + 1; j < len; j++) {      if(arr[j] < arr[min])        min = j;    }    swap(arr, min, i);  }  return arr;}function guibing() {  function merge(arr, left, right, mid) {    let i = left, j = mid + 1;    for(var k = left; k <= right; k++) {      copy[k] = arr[k];    }    for(var k = left; k <= right; k++) {      if(i > mid)        arr[k] = copy[j++];      else if(j > right)        arr[k] = copy[i++];      else if(arr[i] > arr[j])        arr[k] = copy[j++];      else        arr[k] = copy[i++];    }  }  function sort (arr, left, right) {    if(right <= left) return;    let mid = Math.floor((right + left) / 2);    sort(arr, left, mid);    sort(arr, mid + 1, right);    merge(arr, left, right, mid);  }  let copy = [];  sort(arr, 0, arr.length - 1);  return arr;}var arr = getData(20);var alo = {  quicksort, //快排  insert,  //插入  choose,  //选择  guibing  //归并};console.log(alo.guibing(arr));复制代码

转载于:https://juejin.im/post/5bc963e06fb9a05d151cd8f4

你可能感兴趣的文章
线性一致性和 Raft
查看>>
异步IO的应用
查看>>
Apache Ignite——新一代数据库缓存系统
查看>>
Laravel 5.8.2 发布,PHP 开发框架
查看>>
Django中的文件上传(利用class-based view)
查看>>
微控制器和微处理器市场持续增长
查看>>
python的Web框架,Django模型系统二,模型属性,及数据库进阶查询 ...
查看>>
sysbench、iostat测试服务器的iops
查看>>
好程序员Web前端开发入门之网页制作三要素
查看>>
美国要认输?美国防部称或将在5G竞赛中落后中国 ...
查看>>
常用JVM参数解释
查看>>
python 指定日期图片文件删除
查看>>
在阿里云云服务器上发布自己的网站(建站|详细) ...
查看>>
Spring Boot中CrudRepository与JpaRepository
查看>>
组复制官方翻译八、Frequently Asked Questions
查看>>
使用树莓派和Python实现目标检测
查看>>
深入理解Java虚拟机阅读心得(二)
查看>>
大数据学习一般学什么
查看>>
sysbench测试mysql的QPS值
查看>>
基于AWS的电子商务网站架构——营销与推荐服务 ...
查看>>