javascript选择排序

function selectionSort(arr){
  var index,value;
  for(var i = 0;i < arr.length;i ++){
    index = i;                                   //先记录下开始下标
    value = arr[i];                            //先记录下开始值
    for(var j = i + 1;j < arr.length;j ++){
      if(value > arr[j]) {
        value = arr[j];                        //小的值被交换记录下
        index = j;                               //同时记录下坐标
      }
    }
    arr[index] = arr[i];                     //找到最小值后就交换该值
    arr[i] = value;                            //原下标值得到最小值
    output(arr);
  }
}
function output(arr) {
  document.writeln(arr);
}
var arr = [43,789,7,658,72,14,32,65498,1,234,87,76];
selectionSort(arr)

  

时间: 2024-10-18 22:55:32

javascript选择排序的相关文章

javascript选择排序法

选择排序原理: 1.第一次遍历中,找到最小的数组元素然后用第一个数组元素交换它. 2.第二次遍历中,找到第二小的数组元素然后用第二个数组元素交换它. 3.依次类推.如果包含N个元素,那么将在最多N-1次遍历之后完成排序. 示例: 示例结果显示: <!doctype html><html><head><meta charset="utf-8"><title>选择排序法</title><script> va

JavaScript ,Python,java,Go系列算法之选择排序

常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等.用一张图概括: 选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) 的时间复杂度.所以用到它的时候,数据规模越小越好.唯一的好处可能就是不占用额外的内存空间了吧.通俗来说就是你们中间谁最小谁就出列,站到队列的最后边,然后继续对着剩余的无序数组说你们中间谁最小谁就出列,站到队列的最后边,一直到最后一个,继续站到最后边,这样数组就有了顺序,从小到大. 1.算法步骤 首先在未排

JavaScript算法(冒泡排序、选择排序与插入排序)

冒泡排序.选择排序与插入排序复杂度都是指数级别的,放在一起说吧. 介绍一些学习这三个排序方法的比较好的资料.冒泡排序看<学习JavaScript数据结构与算法>介绍的冒泡排序,选择排序看<计算机科学概论(第三版)>里介绍的选择排序,插入排序看<计算机科学概论(第11版)>里介绍的插入排序, 通过这三份资料弄明白实现原理之后,最后看<学习JavaScript数据结构与算法>一书里的JS实现代码. 嗯,这本书里都有现成代码,就不在这儿写了,关键是弄清楚原理,然后

JavaScript排序算法——选择排序

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

选择排序之javascript

选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕. 2.1 算法描述 n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果.具体算法描述如下: 初始状态:无序区为R[1..n],有序区为空: 第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1..i-1]和R(i.

JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序

1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算法和方便以后复习. 之所以把冒泡排序.选择排序.插入排序放在一起比较,是因为它们的平均时间复杂度都为 O(n2). 请大家带着问题:为什么插入排序比冒泡排序更受欢迎 ?来阅读下文. 2. 如何分析一个排序算法 复杂度分析是整个算法学习的精髓. 时间复杂度: 一个算法执行所耗费的时间. 空间复杂度:

选择排序javascript

简单选择排序是人们最熟悉的比较方式,其算法思想为:从数组的开头开始,将第一个元素和其他元素进行比较.检查完所有元素后,最小的元素会被放到数组的第一个位置,然后算法会从第二个位置继续.这个过程会一直进行,当进行到数组的倒数第二个位置时,所有的数据便完成了排序. 代码如下: 分析可得,简单选择排序的时间复杂度为O(n2).选择排序的主要操作是进行关键字之间的比较,因此改进简单选择排序应该从如何减少比较出发.其实现实生活中就有一个很好的例子,就是比赛总的锦标赛.8个人中选出冠军其实不需要7+6+5=1

选择排序---直接选择排序算法(Javascript版)

在要排序的一组数列中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止. function sort(elements){ for(i = 0; i < elements.length; i++){ //将当前位置作为关键位置(最小位置) var key = i; //找出剩余的数列中最小值的位置作为关键位置 for(var j = i + 1; j <

排序算法总结------选择排序 ---javascript描述

每当面试时避不可少谈论的话题是排序算法,上次面试时被问到写排序算法,然后脑袋一懵不会写,狠狠的被面试官鄙视了一番,问我是不是第一次参加面试,怎么可以连排序算法都不会呢?不过当时确实是第一次去面试,以此恶补排序算法. 一.基本排序算法:基本排序算法有冒泡排序,选择排序,插入排序. 选择排序算法思想:选择排序从数组的头开始,将第一个元素与其他元素进行比较,找到最小的元素,然后放到数组的第一个位置.然后再从第二个元素开始找比他小的元素,放到第二个位置,以此类推,重复上述步骤,当进行到数组的第二个位置时