标签:stream log c++ 时间 有序 pac 时间复杂度 namespace 复杂
#include<iostream> #include<cstdio> #include<cstdlib> using namespace std; void SeleteSort(int *a,int n) { int i,j; int temp=0; int flag=0; for(i=0;i<n-1;i++) { temp=a[i]; flag=i; for(j=i+1;j<n;j++) { if(a[j]<temp) { temp=a[j]; flag=j;//目前最小的元素下标 } if(flag!=i)//如果最小的元素不是进行筛选的数据中的第一个,则将最小数据与第一个筛选数据交换 { a[flag]=a[i]; a[i]=temp; } } } } int main() { void SeleteSort(int *a,int n); int i=0; int a[10]={ 2,3,4,5,67,89,34,23,54,98 }; SeleteSort(a,10); for(i=0;i<10;i++) { printf("%d ",a[i]); } return 0; }
原理:
每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
第i趟简单选择排序是指通过n-i次关键字的比较,
从n-i+1个记录中选出关键字最小的记录。
并和第i个记录进行交换。
共需进行i-1趟比较,直到所有记录排序完成为止。
说人话:第一趟从序列中找出元素数值最小的与第一个交换,第二趟从序列中找出剩余中最小的与第二个交换,第n趟中从i个开始的n-i+1个元素中选出最小的与第i个元素交换,直到整个序列的元素变为有序。时间复杂度O(n^2).
以后忘记了就来这里找,每天写一遍,直到背过。拿出背文言文的热枕来。
标签:stream log c++ 时间 有序 pac 时间复杂度 namespace 复杂
原文地址:http://www.cnblogs.com/enyala/p/7694620.html