Chinaunix首页 | 论坛 | 博客
  • 博客访问: 359769
  • 博文数量: 100
  • 博客积分: 2500
  • 博客等级: 大尉
  • 技术积分: 1209
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-15 21:24
文章分类

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-04-20 15:07:47

  1. #include <stdio.h>

  2. void myPrint(int *A, int len);
  3. void mySwap(int *A, int *B);
  4. void selectSort(int *A, int len);

  5. int
  6. main(void)
  7. {
  8.         int a[] = {1,3,5,7,9,0,2,4,6,8,0};
  9.         int len = sizeof(a)/sizeof(a[0]);

  10.         myPrint(a, len);
  11.         selectSort(a, len);
  12.         myPrint(a, len);

  13.         return (0);
  14. }

  15. void
  16. myPrint(int *A, int len)
  17. {
  18.         printf("Enter: ");
  19.         int i = 0;
  20.         for (i = 0; i < len; i++) {
  21.                 printf("%d,",*(A+i));
  22.         }
  23.         printf("\n");
  24. }

  25. void
  26. mySwap(int *A, int *B)
  27. {
  28.         int tmp;
  29.         tmp = *A;
  30.         *A = *B;
  31.         *B = tmp;
  32. }

  33. void
  34. selectSort(int *A, int len)
  35. {
  36.         if (len <= 1) {
  37.                 return ;
  38.         }

  39.         int i, j, k;
  40.         for (i = 0; i < len-1; i++) {
  41.                 k = i;
  42.                 for (j = i+1; j < len; j++) {
  43.                         if (*(A+j) < *(A+k)) {
  44.                                 k = j;
  45.                         }
  46.                 }
  47.                 if (k != i) {
  48.                         mySwap(A+i, A+k);
  49.                 }
  50.         }
  51. }
稳定性:非稳定
T(n): O(n2)
S(n): O(1)


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

上一篇:快速排序

下一篇:希尔排序

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