选择排序(Selection sort)是一种简单直观的排序算法。
它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
1 void select_sort(int a[],int n) 2 { 3 int i,j,min; 4 for(i=0;i<n;i++) 5 { 6 min=i; 7 for(j=i+1;j<n;j++) 8 { 9 if(a[j]<a[min]) min=j; 10 } 11 if(min!=i) 12 { 13 int temp=a[i]; 14 a[i]=a[min]; 15 a[min]=temp; 16 } 17 } 18 }
选择排序C++实现:
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 void select_sort(int a[],int n) 5 { 6 int i,j,min; 7 for(i=0;i<n;i++) 8 { 9 min=i; 10 for(j=i+1;j<n;j++) 11 { 12 if(a[j]<a[min]) min=j; 13 } 14 if(min!=i) 15 { 16 int temp=a[i]; 17 a[i]=a[min]; 18 a[min]=temp; 19 } 20 } 21 } 22 int main() 23 { 24 int a[]={200,87,12,100,34,26,58}; 25 int ilen=sizeof(a)/sizeof(a[0]); 26 select_sort(a,ilen); 27 for(int i=0;i<ilen;i++) cout<<a[i]<<" "; 28 cout<<endl; 29 return 0; 30 }