zoukankan      html  css  js  c++  java
  • 八种排序整理(五)----简单选择排序

    基本概念:是一种简单直观的排序算法,他的基本原理是:对于给定的一组记录,经过第一轮比较后得到最小的记录,

    然后将记录与第一个记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮排序,得到最小的记录

    并与第二个记录进行位置交换;重负该过程,直到进行比较的记录只有一个为止。

    简单选择排序特点:

    最 大 特 点 :移动次数少。

    时间复杂度:总共比较 n(n-1)/2 次 ,移动次数最多n-1, 时间复杂度为O(n2)

    稳    定   性:不稳定

    
    
     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 void SelectSort(int *a, int n)
     6 {
     7     int i, j;
     8     int temp = 0;
     9     int flag = 0;
    10 
    11     for (i = 0; i < n - 1; i++)
    12     {
    13         temp = a[i];
    14         flag = i;
    15         for (j = i + 1; j < n; j++)
    16         {
    17             if (a[j] < temp)
    18             {
    19                 temp = a[j];
    20                 flag = j;
    21             }
    22         }
    23         if (flag != i)
    24         {
    25             a[flag] = a[i];
    26             a[i] = temp;
    27         }
    28     }
    29 }
    30 
    31 int main()
    32 {
    33     int i = 0;
    34     int a[] = {5, 4, 3, 6, 1, 9, 7, 0, 2, 8};
    35 
    36     int length = sizeof(a) / sizeof(a[0]);
    37 
    38     SelectSort(a, length);
    39 
    40     for (i = 0; i < length; i++)
    41     {
    42         printf("%d ", a[i]);
    43     }
    44 
    45     while(1);
    46 
    47     return 0;
    48 }
    
    
    
    
    
  • 相关阅读:
    cancel-ng-swipe-right-on-child
    css.day.05.eg
    css.day05
    css.day04.eg
    css.day04
    css.day03.eg
    css.day03
    css.day02.eg
    九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)(转)
    阿里巴巴笔试题选解
  • 原文地址:https://www.cnblogs.com/kutoli/p/8337888.html
Copyright © 2011-2022 走看看