• javascript算法


    线性查找

    function search(a,x){
      for(var i=0; i<a.length; i++){
        if ( a[i] == x ){
          return i+1;
        }
      }
      return -1;
    }
    View Code

    二分法查找(hot)

    //在二分法中,a为已经升序排列的数组

    function search(a,x){
      var low=0, high=a.length-1;
      while ( low <= high ){
        var mid = Math.floor((low+high)/2);
        if ( a[mid] == x ){
          return mid+1;
        }
        if ( a[mid] < x ){
          low = mid + 1;
        }else{
          high = mid - 1;
        }
      }
      return -1;
    }
    View Code

    冒泡排序

    //一个用的for语句,一个用的while语句,作用一样,纯粹练手。。。

    function bubbleSort(a){
      var i = a.length-1,j;
      var temp;
      for(i; i>0; i--){
        for(j=0; j<i; j++){
          if(a[j]>a[j+1]){
            temp = a[j+1];
            a[j+1] = a[j];
            a[j] = temp;
          }
        }
      }
      return a;
    }
    View Code
    function bubbleSort(a){
      var i = a.length-1, j;
      var temp;
      while(i>0){
        for (j=0; j<i; j++){
          if (a[j] > a[j+1]){
            temp = a[j+1];
            a[j+1] = a[j];
            a[j] = temp;
          }
        }
        i--;
      }
      return a;
    }
    View Code

    选择排序

    function selectSort(array){
      var min, temp;
      var n = array.length;
      for (var i=0; i<n; i++){
        min = i;
        for (var j = i+1; j < n; j++){
          if (array[min] > array[j]){
            min = j;
          }
        }
        if (min != i){
          temp = array[i];
          array[i] = array[min];
          array[min] = temp;
        } 
      }
      return array;
    }
    View Code

    Array.sort()排序

    //使用sort()排序
    function Qsort(b){
      return b.sort(function(a,b){return a>b});
    }
    //生成随机数
    function rand(m,n){
      return Math.floor(Math.random()*(n-m)+m);
    }
    //生成数组
    var z=[];
    function arr(m,n,l){
      for(var i=0; i<l; i++){
        z.push(rand(m,n));
      }
      return z;
    }
    arr(10,100,12);
    document.write(Qsort(z));
    View Code

    快速排序(hot)

    插入排序

    归并排序

    数组去重

    数组顺序扰乱

    数组求交集

    数组求并集

    数组求差集

  • 相关阅读:
    nyoj 311 完全背包
    nyoj 737 石子合并(一)
    nyoj 232 How to eat more Banana
    nyoj 456 邮票分你一半
    nyoj 236 心急的C小加
    nyoj 195 飞翔
    nyoj 201 作业题
    SOS 调试扩展 (SOS.dll)
    使用Windbg和SoS扩展调试分析.NET程序
    windbg命令分类与概述
  • 原文地址:https://www.cnblogs.com/newgold/p/4942097.html
Copyright © 2020-2023  润新知