主题:数组元素移动相关的问题
编程:
假设有以下数据有序地存放在一维数组中,请将加下划线的数据作如下移动:
10 11 [b]12 13 14 15 [/b]16 17 18 19
10 11 16 17 18 19 [b]12 13 14 15[/b]
此题编程思路采用多次逆置数据的方法,即逆置A(3)到A(6)中的数,接着逆置A(7)至A(10)中的数,最后逆置A(3)到A(10)中的数,本题共做了三次逆置.
移动的部分程序段:
REM 三次逆置数据
for i=1 to 3
read l,h
while l<h
swap a(l),a(h)
l=l+1:h=h-1
wend
next k
这题的解法,是一本资料上介绍的,可以作为一种方法,但我却觉得它可以解决问题但很烦琐,也不易想,是不是移动的问题,这种方法就是一种最好的方法呢.
我想的方法是,直接交换:A(3)和A(7),A(4)和A8),A(5)和A(9),A(6)和A(10)共交换四次
移动的程序段为:
for i=3 to 6
swap a(i),a(i+4)
next i
我觉得还是第二种方法好想,好用,而逆置的方法不是顺思维就能想到的,解决一般移动问题,逆置真有点麻烦.
想请教,在移动中介绍逆置的方法主要的目的和应用范围是什么?
假设有以下数据有序地存放在一维数组中,请将加下划线的数据作如下移动:
10 11 [b]12 13 14 15 [/b]16 17 18 19
10 11 16 17 18 19 [b]12 13 14 15[/b]
此题编程思路采用多次逆置数据的方法,即逆置A(3)到A(6)中的数,接着逆置A(7)至A(10)中的数,最后逆置A(3)到A(10)中的数,本题共做了三次逆置.
移动的部分程序段:
REM 三次逆置数据
for i=1 to 3
read l,h
while l<h
swap a(l),a(h)
l=l+1:h=h-1
wend
next k
这题的解法,是一本资料上介绍的,可以作为一种方法,但我却觉得它可以解决问题但很烦琐,也不易想,是不是移动的问题,这种方法就是一种最好的方法呢.
我想的方法是,直接交换:A(3)和A(7),A(4)和A8),A(5)和A(9),A(6)和A(10)共交换四次
移动的程序段为:
for i=3 to 6
swap a(i),a(i+4)
next i
我觉得还是第二种方法好想,好用,而逆置的方法不是顺思维就能想到的,解决一般移动问题,逆置真有点麻烦.
想请教,在移动中介绍逆置的方法主要的目的和应用范围是什么?