选择排序 订阅
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 [1] 展开全文
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 [1]
信息
应用领域
计算机,数学 [1]
外文名
Selection Sort [1]
最好复杂度
O(n^2) [1]
方    法
通过比较 [1]
中文名
选择排序 [1]
最差复杂度
O(n^2) [1]
性    质
不稳定的排序方法 [1]
选择排序选择排序思路
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 [1]  [2] 
收起全文
精华内容
参与话题
问答
  • 选择排序

    万次阅读 2018-02-28 20:31:20
    选择排序也是一种简单直观的排序算法。它的工作原理很容易理解:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。...

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

      注意选择排序与冒泡排序的区别:冒泡排序通过依次交换相邻两个顺序不合法的元素位置,从而将当前最小(大)元素放到合适的位置;而选择排序每遍历一次都记住了当前最小(大)元素的位置,最后仅需一次交换操作即可将其放到合适的位置。

    function selectionSort(arr) {
        var len = arr.length;
        var minIndex, temp;
        for (var i = 0; i < len - 1; i++) {
            minIndex = i;                         //每次都从已排序序列的末尾后一位开始
            for (var j = i + 1; j < len; j++) {
                if (arr[j] < arr[minIndex]) {     //寻找最小的数
                    minIndex = j;                 //将最小数的索引保存
                }
            }
            
           //放到已排序序列的末尾(即交换),该操作很有可能把稳定性打乱,所以选择排序是不稳定的排序算法
            temp = arr[i];  
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
        }
        return arr;
    }

     

    展开全文
  • 算法 - 选择排序(C#)

    万次阅读 多人点赞 2019-02-01 15:05:30
    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!... /* * 每一趟从待排序的数据元素中选出最小... * 选择排序是不稳定的排序算法。 */ namespace SelectionSort { ...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 

    /*
     * 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,
     * 顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完为止。
     * 选择排序是不稳定的排序算法。
     */
    
    namespace SelectionSort
    {
        using System;
    
        /// <summary>
        /// The program.
        /// </summary>
        public static class Program
        {
            /// <summary>
            /// The main.
            /// </summary>
            public static void Main()
            {
                int[] a = {1, 6, 4, 2, 8, 7, 9, 3, 10, 5};
    
                Console.WriteLine("Before Selection Sort:");
                foreach (int i in a)
                {
                    Console.Write(i + " ");
                }
    
                Console.WriteLine("\r\n\r\nIn Selection Sort:");
                SelectionSort(a);
    
                Console.WriteLine("\r\nAfter Selection Sort:");
                foreach (int i in a)
                {
                    Console.Write(i + " ");
                }
            }
    
            /// <summary>
            /// The selection sort.
            /// </summary>
            /// <param name="a">
            /// The a.
            /// </param>
            private static void SelectionSort(int[] a)
            {
                for (int i = 0; i < a.Length - 1; i++)
                {
                    // 存储最小元素的index。
                    int min = i;
    
                    // 寻找最小元素的index。
                    for (int j = i + 1; j < a.Length; j++)
                    {
                        if (a[j] < a[min])
                        {
                            min = j;
                        }
                    }
    
                    int tmp = a[min];
                    a[min] = a[i];
                    a[i] = tmp;
    
                    // 打印数组。
                    foreach (int k in a)
                    {
                        Console.Write(k + " ");
                    }
    
                    Console.WriteLine(string.Empty);
                }
            }
        }
    }
    
    // Output:
    /*
    Before Selection Sort:
    1 6 4 2 8 7 9 3 10 5
    
    In Selection Sort:
    1 6 4 2 8 7 9 3 10 5
    1 2 4 6 8 7 9 3 10 5
    1 2 3 6 8 7 9 4 10 5
    1 2 3 4 8 7 9 6 10 5
    1 2 3 4 5 7 9 6 10 8
    1 2 3 4 5 6 9 7 10 8
    1 2 3 4 5 6 7 9 10 8
    1 2 3 4 5 6 7 8 10 9
    1 2 3 4 5 6 7 8 9 10
    
    After Selection Sort:
    1 2 3 4 5 6 7 8 9 10
    */

     

    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 72,322
精华内容 28,928
关键字:

选择排序