zoukankan      html  css  js  c++  java
  • 排序的一些算法

    终于有时间来写写我的博客,关于算法的问题,说起算法,我想每个程序员都会随口说出几种,今天我简单的总结了关于一些排序的算法:

    1,冒泡排序:冒泡排序总共需要排序n-1趟,每趟比较n-1-趟数这么多次;每趟排序可能需要

    交换多次元素位置,找到其中一个元素的最终未知.每次比较

    都是相邻元素之间的大小比较.

     var array=[1,3,2,5,6,7,11,8,10,9,4];

     for (var i=0;i<array.length;i++) {

     for (var j=0;j<array.length-1-i;j++) {

     if (array[j]>array[j+1]) {

     var temp=array[j];

     array[j]=array[j+1];

    array[j+1]=temp;

     }

    }

     alert(array);

    2,sort方法:js数组的方法,会改变原来的数组

    var arr=[1,10,2,35,56,0,49];

    arr .sort(function(obj1,obj2){

     if(Number(obj1)>Number(obj2)){

     return -1;//desc降

     }else if(Number(obj1)<Number(obj2)){

     return 1;//asc升

     }else{

     return 0;//same相同

     }

    })//这是一个升序排列,将1和-1交换,则变为降序排列;输出就ok啦;

     

    3,选择排序法

    var arr=[3,9,12,6,23,15,18];

    for(var i=0;i<arr.length;i++){

     var max=0;

     for(var j=1;j<arr.length-i;j++){

     if(arr[max]<arr[j]){

     max=j;

     }

     }

    if(max!=arr.length-i-1){

     var temp=arr[max];

     arr[max]=arr[arr.length-i-1];

    /arr[arr.length-i-1]=temp;

     }

    }

    alert(arr) ;

    4.快速排序法

    var arr=[4,7,1,6,8,5,12,9,0,9,11]

    function quickSort(oldArray){

    if(oldArray.length<=1){

    return oldArray;

    }

    var privosIndex=Math.floor(oldArray.length/2);

    var privos=oldArray.splice(privosIndex,1)[0];

    var left=[];

    var right=[];

    for(var i=0;i<oldArray.length;i++){

    if(oldArray[i]<privos){

    left.push(oldArray[i])

    }else{

    right.push(oldArray[i])

    }

    }

    return quickSort(left).concat(privos,quickSort(right));

    }

     var result=quickSort(arr)

     console.log(result);

  • 相关阅读:
    HashMap实现原理
    框架-Spring
    团队开发介绍
    返回一个环状整数数组中最大子数组之和
    软件工程学习体会
    书店促销
    寻找小水王
    梦断代码阅读笔记3
    找水王
    梦断代码阅读笔记2
  • 原文地址:https://www.cnblogs.com/melry/p/6123300.html
Copyright © 2011-2022 走看看