TOJ 3843 快速排序 折半查找
来源:互联网 发布:微信群做淘宝客 编辑:程序博客网 时间:2024/05/21 06:01
TOJ3843
快速排序和折半查找的代码改自《数据结构(C语言版)》严蔚敏
#include<stdio.h>int BinarySearch(int *arr, int low, int high, int key){ int mid; while(low <= high) { mid = (low + high) / 2; if(arr[mid] == key) return 1; else if(arr[mid] < key) low = mid + 1; else high = mid - 1; } return 0;}int Partition(int *arr, int low, int high){ int pivotkey = arr[low]; int temp = arr[low]; while(low < high) { while(low < high && arr[high] >= pivotkey) --high; arr[low] = arr[high]; while(low < high && arr[low] <= pivotkey) ++low; arr[high] = arr[low]; } arr[low] = temp; return low;}void QSort(int *arr, int low, int high){ if(low < high) { int pivotloc = Partition(arr, low, high); QSort(arr, low, pivotloc - 1); QSort(arr, pivotloc + 1, high); }}int main(){ int M, N, i, cnt, num; int arr[4005]; while(scanf("%d%d", &M, &N) != EOF) { for(i = cnt = 0; i < M; i++) { scanf("%d", &arr[i]); } QSort(arr, 0, M-1); for(i = 0; i < N; i++) { scanf("%d", &num); if(BinarySearch(arr, 0, M-1, num)) cnt++; } printf("%d\n", cnt); } return 0;}
- TOJ 3843 快速排序 折半查找
- 快速排序&折半查找
- 折半查找、快速排序
- 快速排序与折半查找算法函数:qsort与bsearch
- 使用qsort()和bsearch()进行快速排序和折半查找
- 折半查找,冒泡排序
- 排序,折半查找
- 选择排序+折半查找
- java排序--折半查找
- 折半查找插入排序
- 二分查找折半查找排序
- 【排序及算法】冒泡/选择/插入/快速排序、顺序查找/折半查找算法
- 黑马程序员_C语言基础_数组之冒泡排序、快速选择排序、折半查找
- 冒泡排序和折半查找
- 折半查找插入排序法
- 冒泡排序 和 折半查找
- 高效排序与折半查找
- 冒泡排序,和折半 查找
- TerraSAR命名规则
- liunx文本文件操作小技巧
- App自动更新之通知栏下载
- MSSQL-to-MySQL v5.3, 从MSSQL迁移到mySQL的最佳工具
- 论文的数据库检索常识
- TOJ 3843 快速排序 折半查找
- jQuery使用validate验证输入
- 第三周 项目二:修旱冰场
- 杭电ACM1238——subtring
- PHP异步调用socket实现代码
- 在斐波那契数列中,找出4百万以下的项中值为偶数的项之和。
- 黑马程序员-CSS+JS简单总结
- Java乔晓松-ajax实现用户名和邮箱唯一验证实例(struts2框架和HIbernate)
- 公交换乘问题---java解决方案