首页 > 代码库 > 简单选择排序

简单选择排序

继续完成大话数据结构里的简单选择排序,简单排序排序的思想是:通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录。书中用的是下标,我感觉有些不好理解,故就更加麻烦的用了一个循环来查找下标元素,尽管这样时间复杂度增大了,但胜在好理解,当前就是想增大自己的代码量,增强自己的编程能力,故先用此方法,等学到后面再补充,代码如下;

  #include<iostream>
  using namespace std;

  int main()
  {
    int a[] = { 9, 1, 5, 8, 3, 7, 4, 6, 2 };

    int min;

    for (int i = 0; i < sizeof(a) / sizeof(int); i++)
    {
      min = a[i];
      for (int j = i + 1; j < sizeof(a) / sizeof(a[0]); j++)//经过这个循环能找出最小值,但无法确定最小值的下标
      {
        if (min > a[j])
        {
          min = a[j];
        }
      }

      for (int j = i + 1; j < sizeof(a) / sizeof(a[0]); j++)//对找出的最小值的元素,然后进行交换
      {
        if (a[j] == min)
        {
          int b;
          b = a[i];
          a[i] = a[j];
          a[j] = b;
        }
      }

   }

    for (int i = 0; i < sizeof(a) / sizeof(int); i++)//输出排好序的数组
    {
      cout << a[i] << "";
    }
    return 0;
  }

简单选择排序