插入排序
伪代码实现
INSERTION-SORT(A)
for j ← 2 to length[A]
do key ← A[j]
//Insert A[j] into the sorted sequence A[1 ‥ j - 1].
i ← j - 1
while i > 0 and A[i] > key
do A[i + 1] ← A[i]
i ← i - 1
A[i + 1] ← key
c++实现
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
// 插入排序
int main(int argc, char *argv[])
{
//输入数据
vector<int> array;
int data;
while (cin >> data)
{
array.push_back(data);
}
//算法排序
for (int j = 1; j != array.size(); ++j)
{
int key = array[j];
int i = j - 1;
while ((i >= 0) && (array[i] > key))
{
array[i + 1] = array[i];
--i;
}
array[i + 1] = key;
}
//输出数据
for (vector<int>::iterator iter = array.begin(); iter != array.end(); ++iter)
{
cout << *iter << " ";
}
cout << endl;
//Press any key to exit
system("PAUSE");
return EXIT_SUCCESS;
}
本文介绍了插入排序的原理,并提供了详细的伪代码及C++实现,帮助理解如何运用插入排序算法来整理数据。
88

被折叠的 条评论
为什么被折叠?



