zoukankan      html  css  js  c++  java
  • 简单选择排序

    简单选择排序(Simple Selection Sort)就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1≤i≤n)个记录交换之。

    核心代码

     1 void SelectSort(int arr[], int len)
     2 {
     3     int i;
     4     int j;
     5     int min;
     6 
     7     //检测参数
     8     assert(arr!=NULL && len>0);
     9     
    10     for(i=0; i<len-1; ++i)
    11     {
    12         min = i;
    13         for(j=i+1; j<len; ++j)
    14         {
    15             if(arr[j] < arr[min])
    16             {
    17                 min = j;
    18             }
    19         }
    20         //把最小值放在对应位置
    21         if(min != i)
    22         {
    23             arr[min] = arr[min] ^ arr[i];
    24             arr[i] = arr[min] ^ arr[i];
    25             arr[min] = arr[min] ^ arr[i];
    26         }
    27     }
    28 }

    算法分析:

      最好时间复杂度:O(n^2)

      平均时间复杂度:O(n^2)

      最坏时间复杂度:O(n^2)

        空间复杂度:O(1)

          稳定性:不稳定

    简单选择排序在性能上要略优于冒泡排序。

  • 相关阅读:
    OpenCV图像的二值化
    OpenCV图像Canny边缘检测
    OpenCV图像的缩放
    OpenCV加载图像并显示
    MFC主窗口架构模型
    MFC架构
    C++多态
    uniGUI试用笔记(九)
    uniGUI试用笔记(八)
    uniGUI试用笔记(七)
  • 原文地址:https://www.cnblogs.com/chen-cai/p/7705830.html
Copyright © 2011-2022 走看看