用php对数字进行排序,
嗨,我在用php学习算法,我想把这个伪代码转换成php用php对数字进行排序,,php,algorithm,sorting,Php,Algorithm,Sorting,嗨,我在用php学习算法,我想把这个伪代码转换成php for i = 1 to n − 1 minval = A[i] minindex = i for j = i to n if (A[j] < minval) minval = A[j] minindex = j exchange A[i] and A[minindex] print_r将数组作为其原始顺序输出,为什么我的算法不重新排序数组 您应该检查中的
for i = 1 to n − 1
minval = A[i]
minindex = i
for j = i to n
if (A[j] < minval)
minval = A[j]
minindex = j
exchange A[i] and A[minindex]
print_r将数组作为其原始顺序输出,为什么我的算法不重新排序数组 您应该检查
中的循环:
for ($i = 0; $i == $n - 1; $i++){
for ($j = $i + 1; $j == $n; $j++){
应该是
for ($i = 0; $i < $n - 1; $i++){
for ($j = $i + 1; $j < $n; $j++){
($i=0;$i<$n-1;$i++)的{
对于($j=$i+1;$j<$n;$j++){
作为
的中的第二个参数,是继续循环的要求。如果($a[$i]>$a[$j]){
它永远不会进入的内部。{
你检查了吗?你在说什么算法?!@Pedro Lobito Bubble Sortthanks dude,嗯,但是我认为($i=0;$i==n;$i++)有什么不对吗意思是“继续循环直到$i等于$n”我错了吗?是的,你错了,它真正的意思是“当$i等于$n时继续”,这从来都不是真的,所以它永远不会进入循环loop@MohamedKirafor循环不是这样工作的。您可以查看以了解更多信息。它真正的意思是“在$I等于$n时执行此循环”,但由于循环第一次处于“活动”状态,因此结果为false并将结束循环。@MohamedKira底线是,您需要在post;)之前调试代码一次。希望这对您有所帮助。
for ($i = 0; $i < $n - 1; $i++){
for ($j = $i + 1; $j < $n; $j++){