减治算法求n个数中的最小数的位置
来源:互联网 发布:如何成为一名黑客 知乎 编辑:程序博客网 时间:2024/05/21 15:42
对于求n 个实数构成的数组中最小元素的位置问题,写出你设计的具有减
治思想算法的伪代码,确定其时间效率,并与该问题的蛮力算法相比较。
#include
#include
#define len 10
using namespace std;
void creatArr(int arr[len])
8
{
srand(time(NULL));
for (int i=0;i
{
arr[i] = rand()%len;
}
}
void printArr(int arr[len])
{
cout<<"数组为:"<<endl;
for (int i=0;i
{
cout<<arr[i]<<' ';
if ((i!=0)&&(i%9 == 0))
{
cout<<endl;
}
}cout<<endl;
}
void minDirect(int arr[len])
{//查找:最坏的情况下需要比较次数为n-1 次
int minarr[len];//存放最小数的下表
for (int i=0;i
{
minarr[i]=-1;
}
int min=arr[0];
minarr[0]=0;
for (int i=1;i
{
if (min < arr[i])
{
continue;
}
else if (min == arr[i])
{
minarr[i] = i;
}
else
{
min = arr[i];
for (int j=0;j
9
{
minarr[j]=-1;
}
minarr[i] = i;
}
}
cout<<"搜索到的最小数下标为:"<<endl;
for (int i=0;i
{
if (minarr[i] != -1)
{
cout<<minarr[i]<<" ";
}
}cout<<endl;
}
int main()
{
int arr[len];
creatArr(arr);
printArr(arr);
minDirect(arr);
return 0;
}
治思想算法的伪代码,确定其时间效率,并与该问题的蛮力算法相比较。
#include
#include
#define len 10
using namespace std;
void creatArr(int arr[len])
8
{
srand(time(NULL));
for (int i=0;i
{
arr[i] = rand()%len;
}
}
void printArr(int arr[len])
{
cout<<"数组为:"<<endl;
for (int i=0;i
{
cout<<arr[i]<<' ';
if ((i!=0)&&(i%9 == 0))
{
cout<<endl;
}
}cout<<endl;
}
void minDirect(int arr[len])
{//查找:最坏的情况下需要比较次数为n-1 次
int minarr[len];//存放最小数的下表
for (int i=0;i
{
minarr[i]=-1;
}
int min=arr[0];
minarr[0]=0;
for (int i=1;i
{
if (min < arr[i])
{
continue;
}
else if (min == arr[i])
{
minarr[i] = i;
}
else
{
min = arr[i];
for (int j=0;j
9
{
minarr[j]=-1;
}
minarr[i] = i;
}
}
cout<<"搜索到的最小数下标为:"<<endl;
for (int i=0;i
{
if (minarr[i] != -1)
{
cout<<minarr[i]<<" ";
}
}cout<<endl;
}
int main()
{
int arr[len];
creatArr(arr);
printArr(arr);
minDirect(arr);
return 0;
}
- 减治算法求n个数中的最小数的位置
- 求n个数中的最小的k个数的BFPRT算法
- n个数中的最小的k个数的BFPRT算法
- 算法题:求N!末尾0的个数和求二进制数中1的个数
- 写出一个算法,对给定的n个数的序列,返回序列中的最大和最小的数
- 求最小的前n个数
- 反素数 模板 求因子的个数为n的最小的数是什么
- O(n)时间复杂度求最小的k个数和第k小的数
- 求N个数中最小的K的数 O(NlogK)
- 返回给定的n个数的序列中的最大数和最小数
- 求n个数中最小的K个数。
- 求0~n里面每个数二进制1的个数,用o(n)算法
- BFPTR算法(中位数的中位数算法)求n个数中第k大的数
- bfprt算法求最小的k个数
- 小算法---寻找最小的不能由n个数选取求和的数
- 对给定的n个数的序列,返回序列中的最大和最小的数
- 算法--求n!末尾0的个数
- 求n个数选m个数的组合数
- linux正则表达式简介
- c++模板类解读STL源码最小模型
- 《编程珠玑》推荐的计算机书籍很全面很基础
- 证明求解约瑟夫斯问题的二进制左循环算法的正确性
- “3选1”的一个概率游戏有点考验智力
- 减治算法求n个数中的最小数的位置
- 完美删除vector的“内存空洞”
- stl序列容器(map和set)的仿函数排序
- Oracle中不使用索引和使用索引的效果比较分析
- Mysql的实用语法
- 蛋疼的GPU开发环境配置日记
- 折叠分组的DataGrid
- win7+vs2008+cuda5.x 环境配置二
- cuda编程基础学习初探