Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1151003
  • 博文数量: 173
  • 博客积分: 4048
  • 博客等级:
  • 技术积分: 2679
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-12 18:53
文章分类

全部博文(173)

文章存档

2018年(1)

2016年(1)

2013年(1)

2012年(118)

2011年(52)

分类: C/C++

2012-04-19 20:39:07

插入排序

点击(此处)折叠或打开

  1. void InsertSort(char array[],unsigned int n)
  2.  {
  3.     int i,j;
  4.     int temp;
  5.     for(i=1;i<n;i++)
  6.     {
  7.       temp = array[i];//store the original sorted array in temp
  8.       //compare the new array with temp(maybe -1?)
  9.       for(j=i ; j>0 && temp < array[j-1] ; j--)
  10.       {
  11.           //all larger elements are moved one pot to the right
  12.           array[j]=array[j-1];
  13.       }
  14.       array[j]=temp;
  15.     }
  16.  }

选择排序

点击(此处)折叠或打开

  1. void selectionSort(int data[], int n)
  2. {
  3.         int i, j, min, temp;
  4.         for (i = 0; i < n - 1; i++) {
  5.                 /* find the minimum */
  6.                 min = i;
  7.                 for (j = i+1; j < n; j++)
  8.                     if (data[j] < data[min])
  9.                         min = j;
  10.                 /* swap data[i] and data[min] */
  11.                 if(min != i) {
  12.                     temp = data[i];
  13.                     data[i] = data[min];
  14.                     data[min] = temp;
  15.                 }
  16.         }
  17. }

冒泡排序

点击(此处)折叠或打开

  1. void bubble_sort(int *a,int n)
  2. {
  3.   int i,j;
  4.   for(i=0;i<n-1;i++)
  5.   {
  6.       for(j=0;j<n-1-i;j++)
  7.       {
  8.           if(a[j]>a[j+1])
  9.           {
  10.               swap(&a[j],&a[j+1]);
  11.           }
  12.       }
  13.   }
  14. }

点击(此处)折叠或打开

  1. void bubble_sort(int d[], int n)
  2. {
  3.         //#假定两两交换发生在数组最后的两个位置#%
  4.         int exchange = n - 1;
  5.         while(exchange)
  6.         {
  7.                 //#记录下发生数据交换的位置#%
  8.                 int bound = exchange;
  9.                 exchange = 0; //#假定本趟比较没有数据交换#%
  10.                 for(int i = 0; i < bound; i++)
  11.                 {
  12.                         if (d[i] > d[i + 1])
  13.                         {
  14.                                 //#交换#%
  15.                                 int t = d[i];
  16.                                 d[i] = d[i + 1];
  17.                                 d[i + 1] = t;
  18.                                 exchange = i + 1;
  19.                         }
  20.                 }
  21.         }
  22. }





阅读(1123) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~