选择排序(Select_Sort)
2016-12-16 17:03
274 查看
所谓选择排序,就是每次找到未排序中最小的(最大的也行)元素的位置,找到后与该位置与未排序序列的第一个元素交换值,直到该序列成为有序序列。初始状态整个序列为无序序列,每次交换都使有序序列的长度加一,无序序列的起始位置后移一位。选择排序的平均时间复杂度为O(n^2),且选择排序相对不稳定。详情见代码。
#include<cstdio> #define maxn 1000+10 void Swap(int &a, int &b) { int x = a; a = b; b = x; } int Select_Sort(int a[], int n) { int pos; int key; for(int i = 0; i < n-1; i++)//i为无序区起始位置,每遍历一次,无序区起始位置后移一位 { pos = i;//pos标记最小值的位置,初始值为i key = a[i];//key为最小值,初始值为无序区首元素 for(int j = i+1; j < n; j++)//遍历无序区,找到无序区最小值的位置 { if(a[j] < key) { key = a[j]; pos = j; } } Swap(a[i], a[pos]);// } } int main() { int num[maxn]; int n; scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d", &num[i]); } Select_Sort(num, n); printf("%d", num[0]); for(int i = 1; i < n; i++) { printf(" %d", num[i]); } printf("\n"); return 0; }
相关文章推荐
- 选择排序(Select Sort)
- 排序——选择排序(Select sort)
- 选择排序(select sort)
- 选择排序(select sort)
- Select Sort Algorithm
- Python中的排序方法(Bubble Sort,Insert Sort,Select Sort,Merge Sort,Quick Sort)
- select sort algorithm
- select sort
- select_sort
- Algorithm intro - Select Sort
- JAVA Select Sort
- JAVA select 或 sort 排序
- Select Sort in scala
- 哈理工OJ 1739 Sort Problem(选择排序)
- MySQL Select and Sort Status Variables
- 数据结构基础(1) --Swap & Bubble-Sort & Select-Sort
- Hive中SELECT TOP N的方法(order by与sort by的区别)
- Hive中SELECT TOP N的方法(order by与sort by的区别)
- Select sort
- Select Sort