zoukankan      html  css  js  c++  java
  • (10)选择排序之一 简单选择排序

          简单选择排序(Simple Selection Sort),一趟简单选择排序的操作为:通过n - i 次关键字间的比较,从n - i + 1个记录中选出关键字最小的记录,并和第i(1 <= i <= n)个记录交换之。时间复杂度为O(n^2)

    // 简单选择排序
    void CSelectionSort::SimpleSelectionSort(void)
    {
    const int count = 9;
    int L[count] = {0, 49, 38, 65, 97, 76, 13, 27, 49};
    for (int i = 0; i < count; ++i)
    {
    int j = SelectMinKey(L, count, i);
    if (i != j)
    {
    int temp = L[i];
    L[i]
    = L[j];
    L[j]
    = temp;
    }
    }
    //打印排序结果。
    for (int i = 0; i < count; ++ i)
    {
    cout
    << L[i] << "\t";
    }
    cout
    << endl;
    }


    // 简单选择排序之选最小值
    int CSelectionSort::SelectMinKey(int L[], int count, int i)
    {
    int index = i;
    for (int j = i + 1; j < count; j++)
    {
    if (L[j] < L[index])
    index
    = j;
    }
    return index;
    }

          简单选择排序是每次都要选取待排序序列里面,记录关键值最小的元素索引。然后和本次待排序序列的第一个元素交换。而起泡排序是只要发现相临的两个元素逆序就交换。

  • 相关阅读:
    LYDSY模拟赛day3 序列
    LYDSY模拟赛day3 涂色游戏
    LYDSY模拟赛day3 平均数
    hdu1757 A Simple Math Problem
    清北国庆day1 (脑)残
    poj3070 Fibonacci
    uva10870 递推关系Recurrences
    湖南附中模拟day1 瞭望塔
    湖南附中模拟day1 收银员
    湖南附中模拟day1 金坷垃
  • 原文地址:https://www.cnblogs.com/wanggary/p/2034659.html
Copyright © 2011-2022 走看看