2024年5月11日发(作者:安卓手机如何打开 caj文件)
基本搜索算法之深度搜索
从一个简单题目开始。
例1.输出n个元素的无重复的全排列。(1<=n<=9)
在这里我们可以对每一个元素编号,形成1,2,…,8,9个数字的全排列。我们用一个一维
数组来处理,相当于有9个位置,每个位置可以放1到9,再进行重复性判断,即在每个位
置放一个数字时判断它前面是否已经使用该数字。通过数组中元素值的变化,产生全排列。
下面给出非递归例程,其中,变量k是表示位置指针,数组x用来装每个位置的值。
const n=5;
var
x:array[1..10] of integer;
k:integer; {位置指针}
function try:boolean; {判重函数}
var i:integer;
begin
for i:=1 to k-1 do
if x[i]=x[k] then
begin try:=false;exit;end;
try:=true;
end;
procedure out; {输出过程}
var i:integer;
begin
for i:=1 to n do
write(x[i]);
writeln;
end;
begin
发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1715384069a2609917.html
评论列表(0条)