• 05.简单选择排序


    1、概述:

    • 设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,
    • 与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。
    • 在简单选择排序过程中,所需移动记录的次数比较少。最好情况下,
    • 即待排序记录初始状态就已经是正序排列了,则不需要移动记录。
    • 最坏情况下,即待排序记录初始状态是按逆序排列的,则需要移动记录的次数最多为3(n-1)。
    • 简单选择排序过程中需要进行的比较次数与初始状态下待排序的记录序列的排列情况无关。
    • 当i=1时,需进行n-1次比较;当i=2时,需进行n-2次比较;依次类推,
    • 共需要进行的比较次数是(n-1)+(n-2)+…+2+1=n(n-1)/2,即进行比较操作的时间复杂度为O(n^2),
    • 进行移动操作的时间复杂度为O(n)。

    2、图解:

    3、代码:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace 简单选择
     8 {
     9     class Program
    10     {
    11         static void SimpleSelectSort(int[] arry)
    12         {
    13             int tmp = 0;
    14             int t = 0;//最小数标记
    15              for (int i = 0; i<arry.Length; i++)
    16              {
    17                 t = i;
    18                 for (int j = i + 1; j<arry.Length; j++)
    19                 {
    20                    if (arry[t] > arry[j])
    21                     {
    22                         t = j;
    23                     }
    24                  }
    25                 tmp = arry[i];
    26                 arry[i] = arry[t];
    27                  arry[t] = tmp;
    28              }
    29          } 
    30         static void Main(string[] args)
    31         {
    32             int[] data = new int[] { 42, 20, 17, 27, 13, 8, 17, 48 };
    33             SimpleSelectSort(data);
    34             foreach (var temp in data)
    35             {
    36                 Console.Write(temp + " ");
    37             }
    38             Console.ReadKey();
    39         }
    40     }
    41 }
  • 相关阅读:
    线性表的顺序存储结构
    Arrays数组类使用介绍
    collection各实现类用途建议
    【转】数据结构collection接口和map接口架构图
    java 面向对象特性说明
    文件的输入输出操作IO
    sql 约束用法
    select into 在mysql中失效的替换办法
    inner join 、left join 、right join 和full join的区别
    Tomcat 启动过程
  • 原文地址:https://www.cnblogs.com/zhh19981104/p/9459062.html
Copyright © 2020-2023  润新知