⑴ 如何用递归算法,实现对有序表的顺序搜索的功能 《C++》
【1】随机生成一组数,用快速排序实现数组排序后,用您所想要的递归算法(二分思想)进行搜索,可否看得出快速排序与与该算法的有某处相同?
【2】好好研究快速排序算法,无论对递归的运用还是提高分析能力都有很大的受益。
#include "time.h"
#define MAX 20
void Initial(int a[]);
void QuickSort(int a[],int left, int right);
void Print(int a[]);
int Search(int a[],int x,int start, int end);
int main()
{
int a[MAX]={0};
Initial(a);
Print(a);
QuickSort(a,0,MAX-1);
printf("###After quick sort:###");
Print(a);
if (Search(a,10,0,MAX-1))
{
printf("\nfind");
}
else
{
printf("\nnot find");
}
return 0;
}
void Initial(int a[])
{
int i=0;
srand( (unsigned)time(NULL));
for (i=0; i<MAX; i++)
{
a[i] = rand()%MAX;
}
}
void QuickSort(int a[],int l, int r)
{
int left=l,right=r;
if (left>=right)
{
return ;
}
int temp = a[left];
while (left<right)
{
//从右边开始找一个小于temp的数,找到或left>=right为止
while (a[right]>=temp && left<right)
{
right--;
}
if (left<right)
{
a[left]=a[right];
left++;
}
//从左边开始找一个大于temp的数,找到或left>=right为止
while(a[left]<=temp && left<right)
{
left++;
}
if (left<right)
{
a[right]=a[left];
right--;
}
}
a[left] = temp;
QuickSort(a,l,left-1);
QuickSort(a,left+1,r);
}
void Print(int a[])
{
int i=0;
for (i=0; i<MAX; i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
//这是你所需要的递归算法,对有序表搜索。
int Search(int a[],int x,int start, int end)
{
if (start>end)
{
return 0;
}
int mid=(start+end)/2;
if (x == a[mid])
{
return 1;
}
if (x>a[mid])
{
Search(a,x,mid+1,end);
}
else if (x<a[mid])
{
Search(a,x,start,mid-1);
}
}
⑵ 递归程序和递归、递归算法一样吗
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。所以,从一定意义上说,人们平时所说的递归就是递归算法。递归程序是将递归算法用程序设计语言来实现的,它是程序,当然也有人说程序是算法描述的一种方法,不管怎么说,递归程序不等同于递归算法。
⑶ 如何用递归算法,实现对有序表的顺序搜索的功能《C++》
这个问题我知道!顺序搜索要用递归么???·····对有序表的话用二分就行了········
递归的话适用于数列····
a(n)=a(n-1)+a(n-2)
这种,数列元素直接有一定联系的才行·····,有序表···用递归的话···我唯一能想到的就是
intf(intn,inti){
inta;
if(a[i]==n)
returni;
else{
a=f(n,i+1);
returna;
}
}
main(){
~
f(n,0)
~
}
大概就这样了··从0号元素搜索···不是就下一号········,其他的我就想不出如何用递归搜索有序表了·······
⑷ 递归顺序检索
没看出啥问题,应该是对的
如下所示:
function
my_scandir($dir)
{
$files=array();
if(is_dir($dir))
{
if($handle=opendir($dir))
{
while(($file=readdir($handle))!==false)
{
if($file!="."
&&
$file!="..")
{
if(is_dir($dir."/".$file))
{
$files[$file]=my_scandir($dir."/".$file);
}
else
{
$files[]=$dir."/".$file;
}
}
}
closedir($handle);
return
$files;
}
}
}
以上就是小编为大家带来的php获得文件夹下所有文件的递归算法的简单实例全部内容了,希望大家多多支持脚本之家~
⑹ 什么是递归算法,算法学习哪个网站好呢
递归算法指的是函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。看过马克威算法交易平台,里面涵盖开源的算法以及马克威算法,另外还有机器学习等内容,真心好,我还下载了几个算法研究了下.....颇合我意~希望可以帮到你。
⑺ 递归算法中树的遍历和图的搜索是怎么一回事啊
访问树或图中的每一个结点,每一结点都要访问到而且仅能访问一次
⑻ 使用递归算法 查找是否有.txt的文件 画出还算法的流程图
递归算法画流程图没有意义,算法代码我有,你要不要。
⑼ 栈和递归算法
我感觉这道题目出得有问题:
假设这道题目用递归来实现,当用户输入的x、y满足x=0 && y>=0或者x>0 && y=0就无法作为递归结束的条件。因此,这个函数有问题。如果函数改为:
g(x,y)=0 x=0,y>=0
g(x,y)=g(x-1,2y)+y x>0,y>0
倒是可以实现。
我以我改过的函数写一个示例,掌握了方法才是王道。
如果我的理解有误,你可以HI我,接着探讨。
⑽ 用递归算法取得一个文件夹的路径有点效率低,有没有效率高一点的
Python walk()一下试试。。。