首页 > 其他 > 详细

8.8 冒泡排序 选择排序 二分查找 递归使用

时间:2014-09-03 22:41:07      阅读:442      评论:0      收藏:0      [点我收藏+]
冒泡排序:
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. #define N 100000
    5. #define M 100000
    6. void show_arr(int * a,int n)
    7. {
    8. int i;
    9. for(i = 0; i < n; i++)
    10. {
    11. printf("%d ",a[i]);
    12. }
    13. printf("\n");
    14. }
    15. void init_arr(int * a, int n)
    16. {
    17. int i;
    18. srand(time(NULL));
    19. for(i = 0; i < n ; ++i)
    20. a[i] = rand() % M;
    21. }
    22. void sort_maopao(int * a , int n)
    23. {
    24. int i,j,temp;
    25. for(i = 0; i < n - 1 ; i++)
    26. {
    27. for( j = 0 ; j < n - i - 1 ; j++)
    28. {
    29. if(a[j] > a[j+1])
    30. {
    31. temp = a[j];
    32. a[j] = a[j+1];
    33. a[j+1] = temp;
    34. }
    35. }
    36. }
    37. return;
    38. }
    39. int main()
    40. {
    41. int a[N];
    42. init_arr(a , N);
    43. // show_arr(a, N);
    44. sort_maopao(a, N);
    45. // show_arr(a, N);
    46. return 0;
    47. }
bubuko.com,布布扣


选择排序:
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. #define N 100000
    5. #define M 100000
    6. void show_arr(int * a,int n)
    7. {
    8. int i;
    9. for(i = 0; i < n; i++)
    10. {
    11. printf("%d ",a[i]);
    12. }
    13. printf("\n");
    14. }
    15. void init_arr(int * a, int n)
    16. {
    17. int i;
    18. srand(time(NULL));
    19. for(i = 0; i < n ; ++i)
    20. a[i] = rand() % M;
    21. }
    22. void sort_xuanze(int * a , int n)
    23. {
    24. int i,j,min,temp;
    25. for(i = 0; i < n - 1 ; i++)
    26. {
    27. min = i;
    28. for( j = i+1 ; j < n ; j++)
    29. if(a[min] > a[j])
    30. min = j;
    31. temp = a[min];
    32. a[min] = a[i];
    33. a[i] = temp;
    34. }
    35. return;
    36. }
    37. int main()
    38. {
    39. int a[N];
    40. init_arr(a , N);
    41. // show_arr(a, N);
    42. sort_xuanze(a, N);
    43. // show_arr(a, N);
    44. return 0;
    45. }
bubuko.com,布布扣



二分查找:查找一个元素在某个数组里(必须是有序的数组)
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. #define N 10
    5. #define M 100
    6. void show_arr(int * a,int n)
    7. {
    8. int i;
    9. for(i = 0; i < n; i++)
    10. {
    11. printf("%d ",a[i]);
    12. }
    13. printf("\n");
    14. }
    15. void init_arr(int * a, int n)
    16. {
    17. int i;
    18. srand(time(NULL));
    19. for(i = 0; i < n ; ++i)
    20. a[i] = rand() % M;
    21. }
    22. void sort_xuanze(int * a , int n)
    23. {
    24. int i,j,min,temp;
    25. for(i = 0; i < n - 1 ; i++)
    26. {
    27. min = i;
    28. for( j = i+1 ; j < n ; j++)
    29. if(a[min] > a[j])
    30. min = j;
    31. temp = a[min];
    32. a[min] = a[i];
    33. a[i] = temp;
    34. }
    35. return;
    36. }
    37. int erfen_find(int * a, int n , int key)
    38. {
    39. int mid , l = 0 , r = n - 1; //mid是中间的坐标,l是左坐标,r是右坐标
    40. while( l <= r)
    41. {
    42. mid = ( l + r )/2;
    43. if( a[mid] < key)
    44. l = mid + 1;
    45. else if ( a[mid] > key)
    46. r = mid - 1;
    47. else
    48. return 1;
    49. }
    50. return 0;
    51. }
    52. int main()
    53. {
    54. int a[N];
    55. init_arr(a , N);
    56. //show_arr(a, N);
    57. sort_xuanze(a, N);
    58. show_arr(a, N);
    59. int key;
    60. scanf("%d",&key);
    61. if(erfen_find(a , N ,key)) //10 需要查找的数
    62. printf("find!\n");
    63. else
    64. printf("not find!\n");
    65. return 0;
    66. }
bubuko.com,布布扣


递归:(阶乘的实现)
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int factorial(int n)
    4. {
    5. if( n == 0)
    6. return 1;
    7. n *= factorial(n - 1);
    8. }
    9. int main()
    10. {
    11. int num = factorial(6);
    12. printf("%d\n",num);
    13. return 0;
    14. }
bubuko.com,布布扣



递归打印三角形:
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. void fun(int n)
    4. {
    5. if (n == 0) return;
    6. fun(n - 1);
    7. int i;
    8. for (i = 0; i < n; ++i)
    9. printf("* ");
    10. putchar(\n);
    11. }
    12. int main()
    13. {
    14. fun(5);
    15. return 0;
    16. }
bubuko.com,布布扣




8.8 冒泡排序 选择排序 二分查找 递归使用

原文:http://www.cnblogs.com/l6241425/p/3954729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!