importrandom
a=[random.randint(1,999) for x in range(0,36)]
#直接插入排序演算法
definsertionsort(a):
for i in range(1,len(a)):
#若下標為i的元素小於下標為i-1的元素,則將下標為i的元素放到合適位置
if a[i] < a[i-1]:
tmp =a[i]
j = i-1
#尋找a[i]的合適位置,並將a[i-1]至a[i]新位置的元素依次後移
while j >= 0 and tmp a[j+1] =a[j]
j = j-1
#將a[i]放到新位置
a[j+1] =tmp
insertionsort(a)
print(a)
<?php//生成待排序陣列
$a =;
for($i=0;$i
<36;$i++)
shuffle($a
);/*
* * 插入排序 insertion sort
* @param [type] $a 待排序陣列的引用
* @return null */
function insertionsort(&$a
) }
}insertionsort(
$a);
var_dump($a);
插入排序演算法的時間複雜度為o(n2),但是插入排序法比冒泡和選擇排序的效能更好。
插入排序 insertion sort 演算法實現
插入排序演算法的原理很簡單,首先將陣列的第乙個數data 0 看成是有序的,然後從第二個元素開始和它前面的元素進行比較,如果從前面的某乙個數大,就交換。由於前面的元素是有序的,所以就使有序元素的個數逐漸增大,直到等於n。插入排序的時間複雜度為 o n 2 演算法的c實現如下 include stdi...
插入排序 insertion sort 演算法實現
插入排序演算法的原理很簡單,首先將陣列的第乙個數data 0 看成是有序的,然後從第二個元素開始和它前面的元素進行比較,如果從前面的某乙個數大,就交換。由於前面的元素是有序的,所以就使有序元素的個數逐漸增大,直到等於n。插入排序的時間複雜度為 o n 2 演算法的c實現如下 include stdi...
插入排序 insertion sort 演算法實現
插入排序演算法的原理很簡單,首先將陣列的第乙個數data 0 看成是有序的,然後從第二個元素開始和它前面的元素進行比較,如果從前面的某乙個數大,就交換。由於前面的元素是有序的,所以就使有序元素的個數逐漸增大,直到等於n。插入排序的時間複雜度為 o n 2 演算法的c實現如下 include stdi...