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

    千次阅读 多人点赞 2021-02-10 14:44:26
    选择排序(Select Sort) 是直观的排序,通过一个中间量从带排序的的数中找出最大或最小的交换到对应位置。再选择次之。选择排序和冒泡排序一样,都有两层循环,还记得上一篇讲过的冒泡排序吗,忘了的话点我回顾。 ...

    在这里插入图片描述

    排序系列:
    冒泡排序


    选择排序(Select Sort) 是直观的排序,通过一个中间量从带排序的的数中找出最大或最小的交换到对应位置。再选择次之。选择排序和冒泡排序一样,都有两层循环。

    让我们通过动态图来看一下选择排序的过程图:
    在这里插入图片描述
    让我们通过动态图来看一下选择排序的过程图:

    这个动态图演示了一个无序数组使用选择排序转变为一个从大到小的有序数组,让我们来观察一下,在进入内循环之前,会记录一个值,这个值是当前外层循环A[i]的值,之后拿着这个值,在内循环遍历数组的时候,跟数组的元素一个一个的比较,如果这个值比当前下标的元素的大,那么就双方的值继续交换,内循环完成后,将这个值再赋值给A[i],经过内循环怎么一折腾,最后A[i]一定是拿到最小或者最大的值。

    和冒泡排序不一样的是冒泡排序如果两个不一样当场就交换,而选择排序是将值给了一个中间变量,让这个中间变量加入内循环,等内循环结束,把真正最大或者最小的值赋值给外出循环的A[i]。


    选择排序原理总结

    [1]记录数组第一个元素的值(数组长度n)。

    [2]遍历n-1次,用该值与其他元素比较,找到最大或者最小的一个数交换。

    [3]记录数组第二个元素的值。

    [4]遍历n-2次,用该值与其他元素比较,找到最大或者最小的一个数交换。

    [5]重复上述步骤,遍历N次,直到没有要比较的数。


    代码

      int array[] = { 7,10,12,3,9,5 };
      for (int i = 0; i < 6; i++)
      {
        int minkey = array[i];
        for (int j = i + 1; j < 6; j++)
        {
          if (minkey < array[j])
          {
            int tamp = array[j];
            array[j] = minkey;
            minkey = tamp;
          }
        }
        array[i] = minkey;
      }
    

    展开全文
  • 算法 - 选择排序(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
收藏数 75,645
精华内容 30,258
关键字:

选择排序