|
|
|
【本页是由以下PHP程序生成的】 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> <style> body { font-family: Arial; font-size: 13px; } </style> </head>
<body> <h2>插入排序法原理</h2> <?php $array = array(341, 576, 216, 498, 142, 166, 112, 296, 785, 348); $n = count($array); $tab = ' '; printf('<b>原数组: </b>%s<br>', join(', ', $array)); for ($j = 1; $j < $n; $j++) { $key = $array[$j]; // 因為之後$array[$j]會變,所以必須拿出來暫存 $i = $j - 1; echo "外层for循环到达了array[$j],其值为{$key}存入变量key中<br>"; $b = $array; $c = $array; if ($array[$i] <= $key) { echo "{$tab}因为前面一个数更小,所以不移动<br>"; } while ($i >= 0 && $array[$i] > $key) { /*$b = $array; $b[$i + 1] = '<b style="color:red">' . $b[$i + 1] . '</b>'; $b[$i] = '<b>' . $b[$i] . '</b>'; echo ' Replace [' . ($i + 1) . "] with [$i]: " . join(', ', $b) . '<br>';*/ $array[$i + 1] = $array[$i]; $b[$i] = '<b style="color:red">' . $b[$i] . '</b>'; $c[$i + 1] = '<b style="color:red">' . $c[$i] . '</b>'; //echo ' : ' . join(', ', $array) . '<br>'; $i--; } $array[$i + 1] = $key; $b[$j] = '<b style="color:blue">' . $b[$j] . '</b>'; $c[$i + 1] = '<b style="color:blue">' . $key . '</b>'; echo $tab . join(', ', $b) . '<br>'; echo $tab . join(', ', $c) . '<br>'; } printf('<b>排序结果: </b>%s<br>', join(', ', $array)); ?> </body> </html>
|
|
【C语言程序】 #include <stdio.h> #define N 10 int main() { int i, j, key/*, a[N]*/; int a[N] = {341, 576, 216, 498, 142, 166, 112, 296, 785, 348}; /*printf("請輸入%d個整數:\n", N); for (i = 0; i < N; i++) scanf("%d", &a[i]);*/ for (j = 1; j < N; j++) { key = a[j]; for (i = j - 1; i >= 0 && a[i] > key; i--) a[i + 1] = a[i]; a[i + 1] = key; } for (i = 0; i < N; i++) printf("%d ", a[i]); putchar('\n'); return 0; }
|
|
【C语言程序2】 #include <stdio.h>
int main() { int nums[] = {287, 114, 303, 558, 311, 254, 583, 799, 116, 245, 388, 14, 98, 65, 47}; int count = sizeof(nums) / sizeof(int); int i, j, key; for (i = 1; i < count; i++) { key = nums[i]; for (j = i - 1; j >= 0 && nums[j] > key; j--) nums[j + 1] = nums[j]; nums[j + 1] = key; } for (i = 0; i < count; i++) printf("%d ", nums[i]); putchar('\n'); return 0; }
|