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

    选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 

    动态演示(寻找最小元素)

    代码实现

    let array = randomArray(1, 100);
    console.log(array);
    selectionSort(array);
    console.log(array);
    function selectionSort(array) {
      if (!Array.isArray(array)) {
        console.log("请传入数组");
        return false
      }
      for (let end = array.length - 1; end > 0; end--) {
        let maxIndex = 0;
        for (let begin = 0; begin <= end; begin++) {
          if (array[maxIndex] <= array[begin]) {
          maxIndex = begin
          }
        }
        [array[maxIndex], array[end]] = [array[end], array[maxIndex]];//ES6数组解构语法快速交换值
      }
      return array;
    }
    
    function randomArray(start,end){
      var a=[],o={},random,step=end-start;
      while(a.length<step){
        random=start+parseInt(Math.random()*step);
        if(!o["x"+random]){
          a.push(random);
          o["x"+random]=1;
        };
      };
      return a;
    };
    

      

      

  • 相关阅读:
    Swift基础
    win32多线程 (六)信号量 Synchronization
    win32 多线程 (五)Event
    win32多线程 (四) Mutex
    win32多线程(三) 死锁
    win32多线程 (二)线程同步之临界区 (critical sections)
    win32多线程 (一) 线程创建与结束等待
    简单Factory模式
    单键模式
    jquery中click事件重复绑定问题
  • 原文地址:https://www.cnblogs.com/ming1025/p/13859040.html
Copyright © 2011-2022 走看看