zoukankan      html  css  js  c++  java
  • 用js实现算法:冒泡排序、插入排序和快速排序

    一、冒泡排序

     1 function bubbleSort(arr){
     2     for(var i=0;i<arr.length;i++){
     3         for(var j=0;j<arr.length-i-1;j++){
     4             if(arr[j]>arr[j+1]){
     5                  var temp=arr[j];
     6                  arr[j]=arr[j+1];
     7                  arr[j+1]=temp;
     8             }
     9         }
    10 
    11     }
    12  }
    13 
    14 var arr=[12,4,9,89,10];
    15 bubbleSort(arr);
    16 console.log(arr);
    二、插入排序
     1 function insertSort(arr){
     2     //从1开始遍历arr
     3     for(var i=1;i<arr.length;i++) {
     4        var t=arr[i];//将当前值保存在t中
     5        var p=i-1;//定义p为i-1
     6       //反复: p>=0&&p位置的值>t
     7        while(p>=0&&arr[p]>t){
     8         //p位置的值,赋值给p+1位置
     9          arr[p+1]=arr[p];
    10          p--;//p减一
    11        }//(循环退出)
    12        arr[p+1]=t;//将t保存到p+1位置
    13     }
    14         return arr;
    15 } 
    16 
    17  var a=[5,1,2,4,8,6,3,77];
    18  var res=insertSort(a);
    19  console.log(res);

    三、快速排序
     1 function quickSort(arr){
     2     if(arr.length>1){
     3       var c=parseInt(arr.length/2);
     4       var center=arr.splice(c,1);
     5       for(var i= 0,left=[],right=[];i<arr.length;i++){
     6             if(arr[i]<center) left.push(arr[i]);
     7             else right.push(arr[i]);
     8       }
     9       return quickSort(left).concat(center,quickSort(right));
    10     }else{ 
    11          return arr; 
    12     }
    13 }
    14   
    15 var a=[5,1,2,4,8,6,3,7];
    16 var res=quickSort(a);
    17 console.log(res);
     


     1 function quickSort(arr) {
     2     if(arr.length<=1) {
     3         return arr;
     4     }
     5     let leftArr = [];
     6     let rightArr = [];
     7     let q = arr[0];
     8     for(let i = 1,l=arr.length; i<l; i++) {
     9         if(arr[i]>q) {
    10             rightArr.push(arr[i]);
    11         }else{
    12             leftArr.push(arr[i]);
    13         }
    14     }
    15     return [].concat(quickSort(leftArr),[q],quickSort(rightArr));
    16 }
    17 
    18 module.exports = quickSort;

     

    愿你有好运气
      如果没有
        愿你在不幸中学会慈悲
    愿你被很多人爱
      如果没有
        愿你在寂寞中学会宽容
    愿你忠于自己
      活的认真
        笑得放肆
    QQ:218 - 299 - 2121
    Email:sunyutechnogeek@163.com
  • 相关阅读:
    PAT天梯赛练习 L3-004 肿瘤诊断 (30分) 三维BFS
    PAT天梯赛练习 L3-003 社交集群 (30分) DFS搜索
    HDU6375双端队列
    hdu1801 01翻转 贪心
    hdu1677 贪心
    hdu2126 类01背包(三维数组的二维空间优化)
    HLOJ1361 Walking on the Grid II 矩阵快速幂
    HLOJ1366 Candy Box 动态规划(0-1背包改)
    IDEA,与gradle引入jar包报错
    StarUML激活
  • 原文地址:https://www.cnblogs.com/sunyuweb/p/8494609.html
Copyright © 2011-2022 走看看