选择排序-Selection Sort

2人阅读 评论(0) 收藏 举报
分类:

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

选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的序列进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

function selectionSort(array) {
    var i,j,temp;
    var minIdx,temp,len = array.length;
    for(i = 0; i < len - 1; i++) {
        minIdx = i;
        for(j = i + 1; j < len; j++) {
            if(array[minIdx] > array[j]) {
                minIdx = j;
            }
        }
        temp = array[i];
        array[i] = array[minIdx];
        array[minIdx] = temp;
    }
    return array;
}

参考:选择排序

查看评论

c/c++选择排序(SelectionSort)

选择排序原理是,先选取第一个数与其他所有数比较,把比较后的最小的数与第一个数交换,这样每执行一次循环就会将最小的数排到最左边,并且下一次循环比较时就会从第二个数再进行比较,也就是少比较一次,同冒泡排序...
  • gaohuazhao
  • gaohuazhao
  • 2016-06-22 10:48:32
  • 1446

C++选择排序法(Selection Sort)

// implementation of Selection Sort (C++) #include using namespace std; void SwapTwo(int& a, in...
  • lijialinapple
  • lijialinapple
  • 2014-04-04 17:37:25
  • 2517

选择排序(Selection Sort)原理及Java实现

选择排序(Selection Sort )分为两种 简单选择排序(Simple Selection Sort) 和树形选择排序。 简单选择排序(Simple Selection Sort): 简单...
  • sun_star1chen
  • sun_star1chen
  • 2014-01-16 09:10:01
  • 1655

选择排序(Selection Sort)优化

选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。它是不稳定的...
  • u010927640
  • u010927640
  • 2016-12-14 22:28:52
  • 345

排序算法(一)-选择排序(Selection Sort)

C语言实现: // // main.cpp // Cpp_test // // Created by PPPPP_Leung on 16/9/15. // Copyright © 2016年 ...
  • a2824256
  • a2824256
  • 2016-11-30 13:45:41
  • 319

经典排序算法(Java版)

  • 2010年10月26日 09:50
  • 34KB
  • 下载

排序算法之选择排序<Selection_Sort>及其C语言代码实现

概述 一个选择排序是一种简单排序,它的排序思路是:每次从未排序的序列中选出一个最小值,并把它放在已排好序的序列的序尾。这样就形成了一个有序序列(从小到大)。 时间复杂度:o(n^2) 核心代码:...
  • gl486546
  • gl486546
  • 2016-11-06 10:08:45
  • 2537

数据结构 - 树形选择排序 (tree selection sort) 详解 及 代码(C++)

树形选择排序 (tree selection sort) 详解 及 代码本文地址: http://blog.csdn.net/caroline_wendy算法逻辑: 根据节点的大小, 建立树, 输出树...
  • u012515223
  • u012515223
  • 2014-06-11 11:18:04
  • 2455

选择排序的伪代码

以下是选择排序的伪代码以及一些分析: SELECTION-SORT(A)                         执行次数 1   for j = 1 to Length(A)      ...
  • xiaochaoqu
  • xiaochaoqu
  • 2013-11-14 16:59:31
  • 2562

几种基本的排序算法:选择排序、插入排序、冒泡排序

选择排序(Selection sort)、插入排序(Insertion sort)与冒泡排序(Bubble sort)這三个排序方式是初学排序所必须知道的三个基本排序方式,它们由于速度不快而不实用(时...
  • wuxianglong
  • wuxianglong
  • 2011-10-13 11:59:10
  • 7748
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 595
    排名: 8万+