将目标元素插入到前方有序序列中合适的位置,插入一次,有序序列长度加一,就是你打牌整理牌序的过程。
INSERTION_SORT(A)
for j = 2 to A.length
key = A[j]
i = j - 1
while i > 0 and A[i] > key
A[i+1] = A[i]
i = i - 1
A[i+1] = key
A = [5,2,4,6,1,3]
print("排序前", A)
j = 1
while j < len(A):
key = A[j]
i = j - 1
while i >= 0 and A[i] > key:
A[i+1] = A[i]
i = i - 1
A[i+1] = key
j = j + 1
print("排序后", A)
#include <iostream>
using namespace std;
int main()
{
int A[] = {5,2,4,6,1,3};
cout << "排序前 ";
for(int i = 0; i < 6; i++)
{
cout << A[i] << " ";
}
cout << endl;
for(int j = 1; j < 6; j++)
{
int key = A[j];
int i = j - 1;
while(i >= 0 && A[i] > key)
{
A[i+1] = A[i];
i = i - 1;
}
A[i+1] = key;
}
cout << "排序后 ";
for(int i = 0; i < 6; i++)
{
cout << A[i] << " ";
}
return 0;
}
运行时间
原文:https://www.cnblogs.com/vito_wang/p/10801919.html