算法复习-选择类排序(1)-简单选择排序

简单选择排序

选择类排序的主要动作是“选择”,简单选择排序采用最简单的选择方式,从头至尾顺序扫描序列,找出最小的一个关键字,和第一个关键字交换,接着从剩下的关键字中继续这种选择和交换,最终使序列有序。

代码:

#include <iostream>
using namespace std;

void print_array(int array[], int n) {
  for (int i = 0; i < n; ++i)
    cout<<array[i]<<" ";
  cout<<endl;
}

void SelectSort(int array[], int n) {
  int i, j, temp, k, min;
  for (i = 0; i < n; ++i) {
    min = array[i];
    for (j = i; j < n; ++j) {
      if (array[j] < min) {
        min = array[j];
        k = j;
      }
    }

    temp = array[i];
    array[i] = array[k];
    array[k] = temp;
  }
}

int main() {
  int array[] = {49, 38, 65, 97, 76, 13, 27};
  print_array(array, 7);
  SelectSort(array, 7);
  print_array(array, 7);

  return 0;
}

复杂度分析:

1. 时间复杂度
两层循环,时间复杂度为O(n^2).

2. 空间复杂度
空间复杂度常量级别,为O(1).

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容