让某人了解程序为什么不输入该功能? 这是一种简单的插入排序算法。
<?php
function insert($my_array)
{
for($i=0;$i<count($my_array);$i++){
$val = $my_array[$i];
$j = $i-1;
while($j>=0 && $my_array[$j] > $val){
$my_array[$j+1] = $my_array[$j];
$j--;
}
$my_array[$j+1] = $val;
}
return $my_array;
$test_array = array(3, 0, 2, 5, -1, 4, 1);
echo "Original Array :\n";
echo implode(', ',$test_array );
echo "\nSorted Array :\n";
print_r(insert($test_array));
?>
答案 0 :(得分:1)
}
function insert($my_array)
{
for($i=0;$i<count($my_array);$i++){
$val = $my_array[$i];
$j = $i-1;
while($j>=0 && $my_array[$j] > $val){
$my_array[$j+1] = $my_array[$j];
$j--;
}
$my_array[$j+1] = $val;
}
return $my_array;
}
$test_array = array(3, 0, 2, 5, -1, 4, 1);
echo "Original Array :\n";
echo implode(', ',$test_array );
echo "\nSorted Array :\n";
print_r(insert($test_array));
OutPut :原始数组:3,0,2,5,-1,4,1个排序数组:Array ( [0] => -1 [1] => 0 [2] => 1 [3] => 2 [4] => 3 [5] => 4 [6] => 5 )
答案 1 :(得分:0)
我从输入中读取文件的名称,我想对内容进行排序,但不打开文件。 这是代码:
function main(){
global $argc, $argv;
if($argc == 1){
print("Please provide text file path");
return;
}
print("START\n");
run($argv[1]);
print("END\n");
}
function run($file_name){
$br = fopen($file_name,"r");
$bw = fopen($file_name,"a");
if($br && $bw){
while(($line = fgets($br))!==false){
if($line == "\n" || $line == "") break;
$values = preg_split('/\s+/', $line);
$res = array();
for($i=0; $i< count($values)-1;$i++){
$res[]=(int)$values[$i];
}
fwrite($bw,to_string(insert($res))."\n");
}
}
fclose($br);
fclose($bw);
}
输出是: 开始 END
答案 2 :(得分:0)
$array = [3,44,38,5,47,15,36,26,27,2];
for($i = 1; $i < count($array); $i++){
$low = $array[$i - 1];
if($array[$i] < $low){
$lastIndex = $i;
$lastIndexVal = $array[$i];
for($j = $lastIndex - 1;$j >= 0; $j--){
if($j == 0 && $array[$j] > $lastIndexVal){
$array[$lastIndex] = $array[$j];
$array[$j] = $lastIndexVal;
}else{
if($array[$j] < $lastIndexVal){
$array[$lastIndex] = $lastIndexVal;
}else{
$array[$lastIndex] = $array[$j];
$lastIndex = $j;
}
}
}
}
}
echo '<pre>';
print_r($array);
echo '</pre>';