【排序算法】选择排序
利用数组储存的元素进行选择排序的最优和最差的时间复杂度都是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;
}
【排序算法】选择排序相关推荐
- C语言基础排序算法-选择排序
C语言基础排序算法-选择排序 什么是选择排序? 选择排序(Selection sort)是一种简单直观的排序算法,第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从 ...
- C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序
常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...
- Java排序算法——选择排序
Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...
- python排序算法-选择排序
python排序算法-选择排序 一.选择排序 1.一趟排序纪录最小的数,放在第一个位置 2.再一次排序记录列表无序区最小的数,放在第二个位置 关键 有序区.无序区.无序区最小数的位置 代码 def s ...
- 十大经典排序算法-选择排序算法详解
十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...
- 排序算法-选择排序-堆排序
排序算法-选择排序-堆排序 堆排序是一种树型选择排序方法.在排序过程中,将 L [ 1... n ] L[1 ... n] L[1...n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点 ...
- 排序算法---选择排序(java版)
简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...
- 排序算法--选择排序(Java实现)
选择排序概念 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中 ...
- 排序算法——选择排序法(Select Sorting)
选择排序(Select Sorting) 基本介绍 选择排序也属于内部排序法,是从预排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的 选择排序思想 选择排序(Selec ...
- [排序算法] 选择排序(2种)
1.直接选择排序 [思想]选出剩下的未排序数据中的最小元素与第i个元素交换 [特点]不稳定 空间代价:O(1) 时间代价:O(n^2) 1 void SelectSort(int Array[], i ...
最新文章
- MVC使用Flash来显示图片
- 时间复杂度的计算方法
- eeglab中文教程系列(14)-Working with ICA Components
- [云炬创业基础笔记]第七张创业资源测试10
- C#~异步编程再续~await与async引起的w3wp.exe崩溃-问题友好的解决
- 轻松学会多线程(四)——synchronized同步keyword知多少
- DW06、DW07 锂电保护IC手册电路,锂电池过充过放过流短路保护芯片电路
- hashCode 一致性hash 算法
- 大数据分析必不可少之数据仓库
- 国内优秀论坛之大汇集
- ios游戏开发 Sprite Kit教程:初学者 3
- 基于蚁群算法的二维路径规划算法
- 爬虫实现自动登陆抽屉网,实现对文章点赞,收藏,评论
- kotlin Android通过GPS定位/网络定位获取当前经纬度及位置信息
- c-lightning 闪电网络配置洋葱服务(tor)
- 运维干到35岁,还能干多久?
- Android进阶之路 - 仿京东地址选择器使用指南
- [GWCTF 2019]枯燥的抽奖 1——php_mt_seed
- 查看38译码器的芯片手册
- cad要素转ppt可编辑emf——城市规划(六)
热门文章
- mysql命令 show_mysql show 相关命令
- C语言三个链表的关联,有能者相互切磋---怎样实现ABC三个链表的相互操作?
- P. Laguna/Evaluation of an Automatic Threshold Based Detector of Waveform Limits in Holter ECG
- android 录音机 apk,实时录音机
- 嵌入式系统——指令操作扩展
- 地址解析协议(Address Resolution Protocol,ARP)
- spark MapPartitionsRDD及ShuffleRDD
- LeetCode 655. Print Binary Tree (C++)
- 以终端模式连接远程桌面
- BZOJ3832: [Poi2014]Rally(拓扑排序 堆)