美文网首页
算法复习-选择类排序(1)-简单选择排序

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

作者: 桔子满地 | 来源:发表于2018-06-20 11:21 被阅读0次

简单选择排序

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

代码:

#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).

相关文章

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

    简单选择排序 选择类排序的主要动作是“选择”,简单选择排序采用最简单的选择方式,从头至尾顺序扫描序列,找出最小的一...

  • 排序算法

    排序算法 非线性时间比较类排序 交换排序 冒泡排序 快速排序 插入排序 插入排序 希尔排序 选择排序 简单选择排序...

  • 常用排序算法总结

    一、选择排序 选择排序示意图 选择排序(Selection sort)也是一种简单直观的排序算法。 算法步骤: 1...

  • 排序算法(四)选择排序

    排序算法(四)选择排序 1.算法思路  选择排序(Selection-Sort)是一种简单直观的排序算法。它的工作...

  • 数据结构05-排序和查找

    1:排序算法分为如下5类: 插入排序:普通插入排序,shell排序等; 选择排序:普通选择排序,堆排序; 交换排序...

  • 2018-04-03 排序算法

    8种排序算法:按照时间复杂度分为两类 简单排序算法:冒泡排序,选择排序,直接插入排序 改进算法:希尔排序,堆排序,...

  • 算法很难?三分钟带你掌握经典算法「选择排序」

    一、选择排序介绍 选择排序(Selection sort)是一种简单直观的排序算法。 二、算法思想 第 1 趟 从...

  • 算法 ----排序算法

    1、排序算法有哪些? 插入排序: 直接插入排序、希尔排序选择排序: 简单选择排序、堆排序交换排序:冒泡排序、快速排...

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 算法

    1.常用的八个基本排序算法 -前言:希尔排序和直接插入排序属于插入排序算法,简单选择排序和堆排序属于选择排序,冒泡...

网友评论

      本文标题:算法复习-选择类排序(1)-简单选择排序

      本文链接:https://www.haomeiwen.com/subject/xqityftx.html