码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法

时间:2017-12-20 03:57:46      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:复杂度   sele   元素   func   col   ret   时间   选择排序   最小值   

一 插入排序

直接插入排序

根据顺序将未排序数组中的元素一一插入已排序好的数组中

 

function insert(arr){
  var source = arr;
  var result = [];
  for(var i=0; i<source.length; i++){ //时间频度 n
    if(i==0){ //n
      result[0]=source[0] //1
    } else{
      for(var j=0; j<result.length; j++){ //n^2-1
        if(source[i]<result[j]){ //n^2
          result.splice(j, 0, source[i]); n^2
          break;
        } else {
          if(j==result.length-1) { n^2
            result[j+1]=source[i]; n^2
            break;
          }
        }
      }
    }
  }
  return result; }
时间复杂度: O(n^2)

 

二 选择排序

二元选择排序

将代排序数组中的最大和最小值选出来分别移到数组的两端

 

function min-max(arr){
  var minIndex, maxIndex;
  for(var k=0; k<arr.length; k++){
    if(k==0){
      if(arr[k]<=arr[k+1]){
        minIndex=k;
        maxIndex=k+1;
      }
    } else{
      if(k>=2){
        if(arr[k]<min){
          minIndex=k
        } else(arr[k]>max){
          maxIndex=k
        }
      }
    }
  }
  
  return {min:min, max:max}
}
function
select(arr){   var source=arr;
  var result=[];
  result.length=source.length;
  var length=source.length;
  for(var i=0; i<length/2; i++){
    var min=min-max(arr).min;
    var max=min-max(arr).max;
    result[i]=min;
    result[length-i-1]=max;
  }
   }

 

排序算法

标签:复杂度   sele   元素   func   col   ret   时间   选择排序   最小值   

原文地址:http://www.cnblogs.com/zhaozhipeng/p/8067669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!