美文网首页
排序问题

排序问题

作者: 我是走A牧 | 来源:发表于2018-02-26 17:08 被阅读0次

1、利用sort进行排序

var arr=[10,11,56,1,5,6,7,33,99,100,8];
 function sortNumber(a,b)
 {
   return a - b
 }

 console.log(arr.sort(sortNumber))

2、冒泡排序

 function sort(arr){
      for(var i=0;i<arr.length-1;i++){
        console.log(arr[i])
        for(var j=0;j<arr.length-i-1;j++){
          if(arr[j]>arr[j+1]){
            var d=arr[j];
            arr[j]=arr[j+1];`
            arr[j+1]=d;
          }
        }
      }
    }

3、选择排序

function sort1(arr){
   var minidnex,temp;
    for(var i=0;i<arr.length-1;i++){
          minidnex=i;
          for(var a=i+1;a<arr.length;a++){
             if(arr[a]<arr[minidnex]){//找到最小值的索引
               minidnex=a;
               console.log(minidnex)
             }
          }
      temp=arr[i]; //把最小值放在空位置
      arr[i]=arr[minidnex];//把最小值放在最前面
      arr[minidnex]=temp;//把大值放在相对应的位置
      console.log(arr)
    }
 }

4、插入排序

function insertionSort1(arr) {
    var temp, inner;
    for (var outer = 1; outer <= arr.length - 1; ++outer) {
      temp = arr[outer];
      inner = outer;
      while (inner > 0 && (arr[inner - 1] >= temp)) {
        arr[inner] = arr[inner - 1];
        --inner;
      }
     arr[inner] = temp;
      console.log(arr)
    }
  }

5 二元分算法(排序)

 var arr1=[44,1,22,55,4,6,88,77,999,888];
    function merge(left,right){
      var result=[];
      while(left.length&&right.length){
        if(left[0] < right[0]) {
          result.push(left.shift());
        }
        else {
          result.push(right.shift());
        }
      }
      console.log(left+"| "+right);
      return result.concat(left).concat(right);//总把最后最大的那个数进行合并
    }

   function crr(arr){
     if(arr.length==1){return arr}
     var mid=Math.floor(arr.length/2);
//     console.log(mid)
     var leftarr=arr.slice(0,mid);
     var rightarr=arr.slice(mid);
     return merge(crr(leftarr),crr(rightarr))
   }

   console.log(crr(arr1));

相关文章

  • 数组排序问题(一)

    目录 冒泡排序 选择排序 插入排序 归并排序 小和问题 逆序对问题 冒泡排序 冒泡排序的思路:每一个数与自己后面的...

  • LintCode 463. 整数排序

    问题描述: 给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。 问题示例...

  • 32.排序问题

    问题一:写出冒泡排序 问题二:写出选择法排序

  • 排序问题

    1、利用sort进行排序 2、冒泡排序 3、选择排序 4、插入排序 5 二元分算法(排序)

  • 排序问题

    1.冒泡排序 2.快速排序 3.选择排序 4.插入排序 5.希尔排序 6.桶排序 7.归并排序 8.堆排序 1.冒...

  • 排序问题

    今天打算把排序算法复习一下,顺便整理一下排序稳定性是指两个相等的元素排序之后二者的相对顺序是否不变排序可以大致分为...

  • 排序问题

    数组排序 数组排序最简单了,直接Arrays.sort(a); a是待排序的数组 根据对象中的成员变量来排序 这个...

  • 问题|排序

    学习笔记,可能有些谬误,请批判性阅读。 排序是数据结构的入门问题。过去的巨人们,进行了很大的努力,才使排序的时间复...

  • 排序问题

    排序问题一般用万能的sort函数就可以搞定,一般定义一下重载的比较函数就行,经常配合结构体一起使用。sort函数在...

  • 排序问题

    排序问题 排序方法 平均情况 最好情况 最坏情况 辅助空间 ...

网友评论

      本文标题:排序问题

      本文链接:https://www.haomeiwen.com/subject/qefonxtx.html