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

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-04-20 13:44:13

  1. #include <stdio.h>

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

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

  11.         myPrint(a, len);
  12.         bubbleSort2(a, len);
  13.         myPrint(a, len);
  14.         bubbleSort(a, len);
  15.         myPrint(a, len);

  16.         return (0);
  17. }

  18. void
  19. mySwap(int *A, int *B)
  20. {
  21.         int tmp;
  22.         tmp = *A;
  23.         *A = *B;
  24.         *B = tmp;
  25. }

  26. void
  27. bubbleSort(int *A, int len)
  28. {
  29.         int i, j;
  30.         for (i = 0; i < len - 1; i++) {
  31.                 for (j = len - 1; j > i; j--) {
  32.                         if (*(A+j-1) < *(A+j)) {
  33.                                 mySwap (A+j-1, A+j);
  34.                         }
  35.                 }
  36.         }
  37. }

  38. void
  39. bubbleSort2(int *A, int len)
  40. {
  41.         int i, j;
  42.         int flag = 0;
  43.         for (i = 0; i < len - 1; i++) {
  44.                 flag = 0;
  45.                 for (j = len - 1; j > i; j--) {
  46.                         if (*(A+j-1) > *(A+j)) {
  47.                                 mySwap (A+j-1, A+j);
  48.                                 flag = 1;
  49.                         }
  50.                 }
  51.                 if (!flag)
  52.                         return ;
  53.         }
  54. }

  55. void
  56. myPrint(int *A, int len)
  57. {
  58.         printf("Enter: ");
  59.         int i = 0;
  60.         for (i = 0; i < len; i++) {
  61.                 printf("%d,",*(A+i));
  62.         }
  63.         printf("\n");
  64. }
稳定性: 稳定
T(n): O(n2)
S(n):  O(1)



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

上一篇:归并排序

下一篇:快速排序

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