Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146480
  • 博文数量: 28
  • 博客积分: 1646
  • 博客等级: 上尉
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-12 14:28
文章分类

全部博文(28)

文章存档

2013年(28)

我的朋友

分类: C/C++

2013-03-14 11:16:44


选择排序:

基本思想:假设待排序集合有n个元素,需要进行n-1趟排序,每次排序从未排序集合中选出最小的元素,加入到已排序集合末尾。时间复杂度为O(n*n),空间复杂度为O(1)。
支持数组或链表。

点击(此处)折叠或打开

  1. void selection_sort(int a[], int n)
  2. {
  3.     int i, j, k;
  4.     for (i=0; i<n-1; i++){
  5.         k = i;
  6.         for (j=i+1; j<n; j++){
  7.             if (a[j] < a[k]){
  8.                 k = j;
  9.             }
  10.         }
  11.         if (k != i){
  12.             int tmp = a[k];
  13.             a[k] = a[i];
  14.             a[i] = tmp;
  15.         }
  16.     }
  17. }

阅读(1195) | 评论(0) | 转发(0) |
0

上一篇:3. Booting and Shutting Down

下一篇:二分查找

给主人留下些什么吧!~~