利用数组储存的元素进行选择排序的最优和最差的时间复杂度都是o(n^2),空间复杂度都是o(1).
数组储存的元素进行选择排序是不稳定的 。例如
10 10 7 2 8 2

#include<iostream>
using namespace std;
void print_array(int* array, int length)
{cout << "array:" << endl;for (int i = 0; i < length; i++){cout << *(array + i)<< " ";}cout << endl;
}
void select_sort(int array[], int length)
{if (length <= 1) return;for (int i = length - 1; i > 0;i-- ){int Maxindex = 0;for (int j = 1; j <= i; j++){if (array[j] >= array[Maxindex]){Maxindex = j;}}int temp = array[i];array[i] = array[Maxindex];array[Maxindex] = temp;}
}
int main()
{int array[12] = { 1,11,12,4,2,6,9,0,3,7,8,2 };print_array(array, 12);select_sort(array, 12);print_array(array, 12);return 0;
}

【排序算法】选择排序相关推荐

  1. C语言基础排序算法-选择排序

    C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...

  2. C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序

    常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...

  3. Java排序算法——选择排序

    Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...

  4. python排序算法-选择排序

    python排序算法-选择排序 一.选择排序 1.一趟排序纪录最小的数,放在第一个位置 2.再一次排序记录列表无序区最小的数,放在第二个位置 关键 有序区.无序区.无序区最小数的位置 代码 def s ...

  5. 十大经典排序算法-选择排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  6. 排序算法-选择排序-堆排序

    排序算法-选择排序-堆排序 堆排序是一种树型选择排序方法.在排序过程中,将 L [ 1... n ] L[1 ... n] L[1...n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点 ...

  7. 排序算法---选择排序(java版)

    简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...

  8. 排序算法--选择排序(Java实现)

    选择排序概念 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中 ...

  9. 排序算法——选择排序法(Select Sorting)

    选择排序(Select Sorting) 基本介绍 ​ 选择排序也属于内部排序法,是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的 选择排序思想 ​ 选择排序(Selec ...

  10. [排序算法] 选择排序(2种)

    1.直接选择排序 [思想]选出剩下的未排序数据中的最小元素与第i个元素交换 [特点]不稳定 空间代价:O(1) 时间代价:O(n^2) 1 void SelectSort(int Array[], i ...

最新文章

  1. MVC使用Flash来显示图片
  2. 时间复杂度的计算方法
  3. eeglab中文教程系列(14)-Working with ICA Components
  4. [云炬创业基础笔记]第七张创业资源测试10
  5. C#~异步编程再续~await与async引起的w3wp.exe崩溃-问题友好的解决
  6. 轻松学会多线程(四)——synchronized同步keyword知多少
  7. DW06、DW07 锂电保护IC手册电路,锂电池过充过放过流短路保护芯片电路
  8. hashCode 一致性hash 算法
  9. 大数据分析必不可少之数据仓库
  10. 国内优秀论坛之大汇集
  11. ios游戏开发 Sprite Kit教程:初学者 3
  12. 基于蚁群算法的二维路径规划算法
  13. 爬虫实现自动登陆抽屉网,实现对文章点赞,收藏,评论
  14. kotlin Android通过GPS定位/网络定位获取当前经纬度及位置信息
  15. c-lightning 闪电网络配置洋葱服务(tor)
  16. 运维干到35岁,还能干多久?
  17. Android进阶之路 - 仿京东地址选择器使用指南
  18. [GWCTF 2019]枯燥的抽奖 1——php_mt_seed
  19. 查看38译码器的芯片手册
  20. cad要素转ppt可编辑emf——城市规划(六)

热门文章

  1. mysql命令 show_mysql show 相关命令
  2. C语言三个链表的关联,有能者相互切磋---怎样实现ABC三个链表的相互操作?
  3. P. Laguna/Evaluation of an Automatic Threshold Based Detector of Waveform Limits in Holter ECG
  4. android 录音机 apk,实时录音机
  5. 嵌入式系统——指令操作扩展
  6. 地址解析协议(Address Resolution Protocol,ARP)
  7. spark MapPartitionsRDD及ShuffleRDD
  8. LeetCode 655. Print Binary Tree (C++)
  9. 以终端模式连接远程桌面
  10. BZOJ3832: [Poi2014]Rally(拓扑排序 堆)