数据结构和算法
wang1029
这个作者很懒,什么都没留下…
展开
-
求一个无符号整数转化为二进制后1的个数
/* *给出一个整数,求这个整数转化为二进制后1的个数 */#include int numOfOne(int n){ unsigned int flag = 1; int count = 0; while(flag { if(flag & n) { ++count;转载 2014-04-14 18:42:03 · 1005 阅读 · 0 评论 -
汉诺塔问题——递归
#include int loop = 0; // 记录移动次数void hanNuoTa(int n, char a, char b, char c){ if(n == 1) { printf("%c ——> %c\n", a, c); ++loop; } else { hanNu原创 2014-04-15 14:32:04 · 428 阅读 · 0 评论 -
选择排序
选择排序是冒泡排序的一种优化原创 2014-04-16 20:20:18 · 351 阅读 · 0 评论 -
插入排序
#include void insertSort(int arr[], int size){ int i = 0; while(i { int k = i; for(k; k { if( arr[i] > arr[k]) {原创 2014-04-14 16:32:29 · 624 阅读 · 0 评论 -
冒泡排序
/* *冒泡排序 从小到大排序 */#include void bubbleSort(int arr[], int size){ int pos1 = 0, pos2 = 0; // 分别是外层循环和内层循环的下标 for(pos1 = size-1; pos1 >= 1; --pos1) { for(pos2 = 0; pos2原创 2014-04-16 12:23:32 · 371 阅读 · 0 评论 -
快速排序
快速排序(类似于归并算法)是一种分而治之算法。首先它将列表分为两个更小的子列表:一个大一个小。然后递归排序这些子列表。下面就用分而治之的方法来排序子数组A[p...r];步骤:Divide:从列表中取一个元素作为支点,将数组分为A[p‥q - 1] andA[q + 1‥r] ,A[p ‥ q - 1]中每一个元素都小于A[q] , 而A[q + 1 ‥ r]中每个元素都大原创 2014-04-17 10:14:20 · 370 阅读 · 0 评论