标签:
简单选择排序是每次选择第i小的元素,放到第i位置。
第i小的元素只需要从未排序的元素中选出最小的就是。
#include <iostream> #include <cstring> #include <cstdlib> using namespace std; #define maxn 20 typedef struct SqList { int r[maxn]; int Length; }SqList; void InitSqList(SqList &L,int n) { int num; for(int i=0; i<maxn; i++) L.r[i] = 0; for(int i=1; i<=n; i++) { cin>>num; L.r[i] = num; } L.Length = n; } void PrintSqList(SqList L) { for(int i=1; i<=L.Length; i++) cout<<L.r[i]<<" "; } int SelectMax(SqList &L,int n) { int index = n; for(int k=n+1; k<=L.Length; k++) if(L.r[k]<L.r[index]) index=k; return index; } void SelectSort(SqList &L) { int temp; int index; for(int i=1; i<L.Length; i++) { index = SelectMax(L,i); if(i!=index) { temp = L.r[i]; L.r[i] = L.r[index]; L.r[index] = temp; } } } int main() { SqList L; int n; cin>>n; InitSqList(L,n); SelectSort(L); PrintSqList(L); return 0; }
先给堆排序留个地方,日后加上。。。
标签:
原文地址:http://blog.csdn.net/tingyu1995/article/details/46593615