标题:[求助]关于数据查询的C++编程
只看楼主
zlj45678988
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-27
 问题点数:0 回复次数:8 
[求助]关于数据查询的C++编程
一、 题目:数据查询问题2(数组的冒泡排序和分块查找法
2. 基本要求:
(1)要求用C++语言编程,在Visual C++环境下调试完成;
(2)要求各个功能分别使用函数来完成;
(3)分析分块查找算法的查找长度;
(4)程序调试通过后,完成程序文档的处理,源代码加必要的注释。
三、设计方法和基本原理
1. 课题功能描述
课题实现的功能是在一组无序数列中查找某个数据,找到则输出该数据,否则输出未找到信息。
2. 问题详细描述
将一组无序数列通过冒泡排序方法使其成为有序线性表,然后再通过分块查找(索引查找)方法从中查询某个数据,找到则输出该数据,否则输出未找到信息。
希望大家能帮帮忙!不胜感激!我的邮箱zlj45678988@sohu.com
搜索更多相关主题的帖子: 源代码 数据 课题 
2007-06-27 16:42
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
冒泡排序:
#include <iostream>

using namespace std;

int main(){
const int size = 5;
int a[size] = {2,56,25,4,8};
//sort
for (int i = 0;i < size - 1;++i){
for (int j = 0;j < size - 1 - i;++j){
if (a[j] > a[j+1]){
//swap
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//display after sorted
for (int i = 0;i < size;++i)
cout << a[i] << " ";
cout << endl;

system("pause");
}

[此贴子已经被作者于2007-6-27 17:37:21编辑过]


Fight  to win  or  die...
2007-06-27 17:36
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
2分搜索:


[CODE]#include <iostream>
using namespace std;


int binarySearch_recursive(int a[],int key,int left,int right){
int range = right - left;
int i = left + range/2;
if (range < 2)
return -1;
else if (key == a[i])
return i;
else if (key < a[i])
return binarySearch_recursive(a,key,left,i);
else if (key > a[i])
return binarySearch_recursive(a,key,i,right);
}

int binarySearch_iterative(int a[],int key,int left,int right){
while (right - left > 1){
int range = right - left;
int i = left + range/2;
if (key == a[i])
return i;
else if (key < a[i])
right = i;
else if (key > a[i])
left = i;
}
return -1;
}

int main(){
int a[] = {1,2,3,4,5,6,7,8,9,10};
cout << binarySearch_recursive(a,4,0,9) << endl;
cout << binarySearch_iterative(a,8,0,9) << endl;
system("pause");

}[/CODE]

Fight  to win  or  die...
2007-06-27 17:36
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
自己组合下。

Fight  to win  or  die...
2007-06-27 17:37
zlj45678988
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-27
得分:0 

我还得问个幼稚的问题!直接拼在一起就可以了吗?

2007-06-27 17:46
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
确实很幼稚。

你如果读不懂代码,那我给你也没用。
自己在多try一下吧,问问老师,同学。

Fight  to win  or  die...
2007-06-27 17:51
zlj45678988
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-27
得分:0 

拜托,我只是学了一点C++,冒泡法会,但是分块查找的确是不会!麻烦您给组合一下吧

2007-06-27 17:53
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
你用冒泡排序好后,把排好序的数组作为参数去调用2分搜索的函数即可。

2分搜索有两个版本,随便选一个就好。

Fight  to win  or  die...
2007-06-27 17:56
zlj45678988
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-27
得分:0 

还是不太懂,我自己再弄弄吧

2007-06-27 18:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-150779-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.074701 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved