回朔法

回朔法定义:

是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。


时间性能:

回朔法实际属于蛮力穷举法,在最坏的情况下,时间代价肯定为指数阶


素数环问题:

// 0515.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include 
#include 
using namespace std;






int Prim(int x)
{
	int i,n;
	n=(int)sqrt(x);
	for(i=2; i<=n; i++)
		if(x%i==0)
			return 0;
		return 1;
}//Prim函数用来判断这个数是不是一个素数


int Check(int n,int k,int a[])
{
	int flag=0;
	for(int i=0; i=1)
	{
		a[k]=a[k]+1;
		while(a[k]<=n)
			if(Check(n,k,a)==1)
				break;
			else
				a[k]=a[k]+1;
			if(a[k]<=n && k==n-1)
			{
				for(i=0; i>n;
	PrimCircle(n,a);
	cout<

最坏情况时间复杂度为O(n的n次方)




你可能感兴趣的:(无代码,思路,回朔法,算法分析)