zoukankan      html  css  js  c++  java
  • 冒泡排序&选择排序

    复制代码
    /*
      什么是冒泡排序:从头到尾比较相邻的两个数的大小,如果符合条件则进行比较
      
      【注】:从小到大进行排序


      假设有一个数组 var arr = [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那么按照冒泡排序的规则我们可以进行演变和尝试

      第一次比较
      9 8 7 6 5 4
      
      8 9 7 6 5 4
      8 7 9 6 5 4
      8 7 6 9 5 4
      8 7 6 5 9 4
      8 7 6 5 4 9
      
      通过第一轮的比较我们将最大的数字9比较了出来,但是这并不是我们想要的最终结果,所以我们还需要继续比较


      第二次比较
      8 7 6 5 4

      7 8 6 5 4
      7 6 8 5 4
      7 6 5 8 4
      7 6 5 4 8
      
      通过第二轮比较我们将最大数字8比较了出来

      第三次比较
      7 6 5 4
      
      6 7 5 4
      6 5 7 4
      6 5 4 7
      
      通过比较我们将最大数字7比较了出来

      第四次比较
      6 5 4

      5 6 4
      5 4 6
      
      通过比较我们将最大数字6比较了出来

      第五次比较
      5 4
      
      4 5
      
      通过比较我们将数组5比较了出来


      
      【注】:通过以上演变我们得出一个结论也就是说比较的次数等于数组的长度减一; 每一次的比较内部需要两两比较的次数是 数组的长度-1-i
      
    */
    var temp;
    for(var i=0;i<arr.length-1;i++){
      for(var j=0;j<arr.length-1-i;j++){
        if(arr[j]>arr[j+1]){
           temp = arr[j];
           arr[j] = arr[j+1];
           arr[j+1] = temp; 
        }
      }
    }
    复制代码
    复制代码
    /*
      什么是选择排序
         类似于打擂台一样,谁赢了谁就站在第一位

       
      假设有一个数组 var arr = [9,8,7,6,5]; 我们想要进行这个数组进行排序那么按照选择排序的规则我们可以进行演变和尝试
      第一轮比较
      9 8 7 6 5
      
      8 9 7 6 5
      7 9 8 6 5
      6 9 8 7 5
      5 9 8 7 6

      第一轮比较出最小的数放在了第一位

      第二轮比较

      9 8 7 6

      8 9 7 6
      7 9 8 6
      6 9 8 7

      第二轮比较出最小的数放在了第一位

      第三轮比较
      9 8 7

      8 9 7
      7 9 8

      第三轮比较出最小的数放在了第一位

      第四轮比较
      9 8
      
      8 9

      第四轮比较完毕


      【总结】:首先看比较次数的规律:数组的长度-1,每轮比较的规律:每次比较的位置都是当前数字的位置+1进行的比较

    */
    var temp;
    for(var i=0;i<arr.length-1;i++){
      for(var j=i+1;j<arr.length;j++){
        if(arr[i]>arr[j]){
          temp = arr[i];
          arr[i] = arr[j];
          arr[j] = temp;
        }
      }
    }
     
  • 相关阅读:
    hdu 5119 Happy Matt Friends
    hdu 5128 The E-pang Palace
    hdu 5131 Song Jiang's rank list
    hdu 5135 Little Zu Chongzhi's Triangles
    hdu 5137 How Many Maos Does the Guanxi Worth
    hdu 5122 K.Bro Sorting
    Human Gene Functions
    Palindrome(最长公共子序列)
    A Simple problem
    Alignment ( 最长上升(下降)子序列 )
  • 原文地址:https://www.cnblogs.com/liuhaov/p/13488175.html
Copyright © 2011-2022 走看看