zoukankan      html  css  js  c++  java
  • javascript算法

    1.冒泡排序:

    规则:前后两两进行比较,如果符合比较的条件,交换两数的位置,直到所有的数据比较完成,且符合从小到大条件,则结束排序。

    规律:每一轮比较,都会找出一个较大的数,放在正确的位置。

    复杂度:当数据为正序排列时,时间复杂度最小;当数据是倒序排列时,时间复杂度最大。
     
    var arr=[4,3,2,1]
    //
    决定比较几轮 for(var i = 0; i < arr.length - 1; i++){ //决定每一轮比较多少次 for(var j = 0; j < arr.length - i - 1; j++){ if(arr[j] > arr[j + 1]){ var tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } alert(arr);//1,2,3,4,5

     2.选择排序

    规则:找到数据结构中的最小值并将其放置在第一位,接着找到第二小的值并将其放在第二位,以此类推。
    规律:每一轮比较,找到最小值,按正序排列。
    复杂度: O(n^2)。
    var changeE= function (array,i,j){
      var arrayI= array[i];
      array[i] = array[j];
      array[j] = arrayI;
    }
    
    var selectionSort = function(array) {
      var length = array.length,// 声明一些将在算法内使用的变量
        indexMin;
      for (var i = 0;i < length -1;i++) {// 外循环
        indexMin = i;// 假设本迭代轮次的第一个值为数组最小值
        for (var j = i;j < length;j++) {// 从当前i的值开始至数组结束
          if (array[indexMin] > array[j]) {//我们比较是否位置j的值比当前最小值小
            indexMin = j; // 如果是,则改变最小值至新最小值
          }
        }
        if (i !== indexMin) {
          changeEle(array, i, indexMin); // 最后,如果该最小值和原最小值不同,则交换其值。
        }
      } // 复杂度是O(n^2)
      return array;
    }

  • 相关阅读:
    MySQL 索引优化
    [转]多列索引
    abstract class和interface有什么区别? [转]
    PM knowledge
    委托应用场景[摘]
    Web 服务描述语言工具 (Wsdl.exe)[FROM msdn]
    C# 四个基本技巧[转]
    What are database states? [forward]
    学做程序经理[摘]
    SET IDENTITY_INSERT 学习心得[转]
  • 原文地址:https://www.cnblogs.com/sunhuinaxixi/p/12257451.html
Copyright © 2011-2022 走看看