算法排序冒泡,选则,插入,快排(未完待续)

  1 #include <stdio.h>
  2 
  3 
  4 
  5 int erfen(int arr[], int low, int high, int key)
  6 {
  7     int mid;
  8     while(low<=high)
  9     {
 10         mid = (low + high)/2;
 11         if(key > arr[mid])
 12             low = mid + 1;
 13         else if(key < arr[mid])
 14             high = mid -1;
 15         else if(key == arr[mid])
 16             return mid;
 17     }
 18     return -1;
 19 }
 20 
 21 
 22 
 23 void buboo_sort(int* arr , int len)
 24 {
 25     int i,j,temp;
 26     for(i =0; i<len-1; i++)
 27     {
 28         for(j = 0;j<len-1-i;j++)
 29         {
 30             if(arr[j]>arr[j+1])
 31             {
 32                 temp = arr[j];
 33                 arr[j] = arr[j+1];                                                                                                                                
 34                 arr[j+1] = temp;
 35             }
 36         }
 37     }
 38 }
 39 
 40 void xunze(int* arr, int len)
 41 {
 42     int i=0, j=0;
 43     int mi,idx;
 44     for(i=0; i<len-1; i++)
 45     {
 46         mi=i;
 47         for(j=i+1; j<=len-1; j++)
 48         {
 49             if(arr[j] > arr[mi])
 50             {
 51                 mi = j;
 52             }
 53         }
 54         if(mi != i)
 55         {
 56             arr[i] = arr[i]^arr[mi];
 57             arr[idx] = arr[i]^arr[mi];
 58             arr[i] = arr[i]^arr[mi];
 59         }
 60 
 61     }
 62     for(int i=0; i<len; i++)
 63     {
 64         printf("%d ", arr[i]);
 65     }
 66 
 67 }
 68 
 69 
 70 
 71 
 72 int main(int argc, const char *argv[])
 73 {
 74     int arr[] = {110, 202, 33, 44, 55, 66,77, 88, 909, 999};
 75     int len = sizeof(arr)/sizeof(arr[0]);
 76     xunze(arr, len);
 77 
 78 
 79 
 80 
 81 
 82 
 83 
 84 /*  buboo_sort(arr, len);
 85     for(int i=0; i<len; i++)
 86         printf("%d\t",arr[i]);
 87     return 0;
 88     //  int res;
 89     //  res =erfen(arr, 0, sizeof(arr)/sizeof(arr[0])-1, 55);
 90     //  printf("%d\n",res);
 91 */
 92 
 93     return 0;
 94 }
~                                                                                                                                                                     
~                                                                                                                                                                     
~                                                                                                                                                                     
~                                                                                                                                                                     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值