冒泡排序、选择排序、快速排序、二分法查找
来源:互联网 发布:雷洋 知乎 编辑:程序博客网 时间:2024/05/17 16:45
从网上学习,并调试通过:
void bubble_sort(int array[], int n)
{
int i, j, temp;
for (i = 0; i < n; i++)
{
for (j = 0; j < n-i; j++)
{
if (array[j] > array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
printf("i = %d\n", i);
}
}
return;
}
void select_sort(int buf[], int n)
{
int temp;
int pos;
int i,j;
for (i = 0; i < n-1; i++)
{
temp = buf[i];
pos = i;
for (j=i+1; j<n; j++)
{
if (buf[j] < temp)
{
temp = buf[j];
pos = j;
}
}
buf[pos] = buf[i];
buf[i] = temp;
}
}
void quick_sort(int array[], int low, int high)
{
int left, right, middle;
int temp;
left = low;
right = high;
middle = (left + right)/2;
while (left < right) {
while (left<high && array[left]<array[middle])
left++;
while (right>low && array[right]>array[middle])
right--;
if (left <= right) {
temp = array[left];
array[left] = array[right];
array[right] = temp;
left++;
right--;
}
}
if (left < high)
quick_sort(array, left, high);
if (right > low)
quick_sort(array, low, right);
}
int search(int *a, int key, int low, int high)
{
int mid;
if(low > high)
return -1;
mid = (low + high)/2;
if(a[mid] == key)
return mid;
else if(a[mid]>key)
return search(a, key, low, mid-1);
else return search(a,key,mid+1, high);
}
int search_c_plus_plus(int *a, int key, int length)
{
int mid;
if(length <= 0)
return -1;
int front = 0;
int end = length -1;
mid = (front + end)/2;
while(front<end && a[mid] != key)
{
if(a[mid] < x)
front = mid +1;
if (a[mid] > x)
end = mid-1;
mid = (front + end)/2;
}
if(a[mid] != x)
printf("not find.\n");
else {
printf("find it, in %d\n", mid+1);
}
}
- 冒泡排序、选择排序、快速排序、二分法查找
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 冒泡排序、直接选择排序、二分法查找
- 冒泡排序、选择排序、插入排序以及二分法查找算法
- ************** 冒泡、选择排序二分法 **************
- java选择排序,冒泡排序分析,附带二分法查找
- 黑马程序员--选择排序、冒泡排序、二分法查找
- 冒泡排序、选择和插入排序、二分法查找
- Java 冒泡、选择、二分法排序
- 【排序】快速排序 冒泡排序 选择排序
- 插入,冒泡,选择,快速排序,二分查找
- Python实现冒泡排序、选择排序、插入排序、快速排序、归并排序、二分法查找算法(基于《算法导论》伪代码)
- 排序-冒泡,快速(选择排序)
- 快速,冒泡,选择排序
- 冒泡,选择,快速排序
- 选择,冒泡,快速排序
- 冒泡,选择,快速排序
- 冒泡、选择、快速排序
- 零零碎碎的网站优化12点
- TimeUnit
- 团队领导的实践指南(软件开发团队)
- outlook定期提醒
- 水平营销——“跳出盒子”的思考
- 冒泡排序、选择排序、快速排序、二分法查找
- hadoop学习
- Cocos2d label对齐的锚点设置
- ubuntu下eclipse打开java文件,注释内容为乱码的解决方法
- android 的2.3 的单双camera的调试 使用android的prop技术点滴分析
- VOA Special English 学习总攻略
- 项目中的pickupwindows原理大揭秘
- 【项目经验】iphone之ASIHTTPRequest
- JavaScript创意游戏:请画一个小人-网址