几道笔试题的解法(二)
来源:互联网 发布:区分数据库的根据 编辑:程序博客网 时间:2024/05/01 14:32
题目:给定数组A[N],要求实现一个排序算法和一个二分查找算法的程序。
分析:本题主要考察排序和二分查找算法。
代码如下:
void Swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
void BubbleSort(int *A, int Length)
{
int i = 0;
int j = 0;
int temp = 0;
for (; i < Length; i++)
{
for (j = i; j < Length; j++)
{
if (A[i] > A[j])
{
Swap(A[i], A[j]);
}
}
}
}
int BinarySearch(int *A, int len, int _num)
{
int Mid = 0;
int _start = 0;
int _end = len - 1;
int _found = 0;
BubbleSort(A, len);
while (_start <= _end)
{
Mid = (_start + _end) / 2;
if (_num < A[Mid]) //如果小于,就在前半部分找
{
_found++;
_end = Mid - 1;
}
else if (_num > A[Mid]) //如果大于,就在后半部分找
{
_found++;
_start = Mid + 1;
}
else //找到的情况
{
_found++;
std::cout << "The value " << _num << " is found!" << '/n';
std::cout << "Total compare:" << _found << '/n';
std::cout << "It's subitem is:" << Mid << '/n';
return Mid;
}
}
std::cout << "The search value " << _num << " is not found !" << '/n';
std::cout << "Total compare:" << _found << '/n';
return -1;
}
- 几道笔试题的解法(二)
- 几道笔试题的解法(一)
- 几道笔试题的解法(三)
- 几道笔试题的解法(四)
- 几道笔试题的解法(五)
- 几道笔试题的解法(六)
- 几道笔试题的解法(七)
- 几道笔试题的解法(八)
- 一个笔试题的递归解法
- 一道笔试题的搞笑解法
- 几道笔试题
- 几道笔试题
- 几道笔试题
- 几道笔试题
- 几道笔试题
- 几道笔试题
- 几道笔试题
- MSN CDC的几道笔试题
- [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问
- js刷新父页面
- 算法 : 最长升序降序序列
- 设计方法之卡片分类(Card sort)
- Silverlight 3中的Behavior技术(二)
- 几道笔试题的解法(二)
- 《字字带泪——写在三十岁到来这一天》 By 王潇
- openssl-1.0.0 正式发布 编译安装记录
- Java编程思想学习笔记——枚举、注解
- MySQL 多表查询
- java的Comparator和Comparable
- 最好听的男孩名字及1000个好听的女孩的名字
- 中文数据写入MySql乱码问题
- 几道笔试题的解法(三)