净水器压力桶打气视频:【排序结构3】 选择排序

来源:百度文库 编辑:中财网 时间:2024/04/29 05:58:32

(1) 简单选择排序 O(N^2)

一趟简单选择排序的操作为:通过n-i 次关键字间的比较,从n-i+1 个记录中选择出关键字最小的记录,并和第 i (i<=i<=n)个记录交换之。

Cpp代码
  1. #include
  2. /***************************************
  3. * 简单选择排序 Simple Selection Sort *
  4. ***************************************/
  5. class SimpleSelectSort{
  6. public:
  7. //递增排序
  8. static void inc_sort(int keys[],int size);
  9. };
  10. void SimpleSelectSort :: inc_sort(int keys[], int size){
  11. for(int i=0;i
  12. int min_key=keys[i]; //存储每一趟排序的最小值
  13. int min_key_pos=i; //存储最小值的位置
  14. for(int j=i+1;j
  15. if(min_key>keys[j]){ //定位最小值
  16. min_key=keys[j];
  17. min_key_pos=j;
  18. }
  19. }
  20. keys[min_key_pos]=keys[i]; //将选择的最小值交换位置
  21. keys[i]=min_key;
  22. }
  23. for(int k=0;k
  24. cout<
  25. cout<
  26. }
  27. //Test SimpleSelectSort
  28. void main(){
  29. int raw[]={49,38,65,97,76,13,27,49};
  30. int size=sizeof(raw)/sizeof(int);
  31. SimpleSelectSort::inc_sort(raw,size);
  32. }