插入排序实现 C++
#include <iostream> using namespace std; void InsertionSort(int *A, int length) { /* 第0个位置有序,从第1个位置开始(j=1) 每次j:将A[j]插入到有序A[0...j-1]中 直到j>n为止 */ for (int j=1; j<length; j++) { int key = A[j]; int i = j-1; while (i>=0 && A[i]>key) { A[i+1] = A[i]; i--; } A[i+1] = key; } } int main() { int s[100]; int i = 0; while (cin >> s[i]) { i++; if (cin.get() == '\n') break; } int len = i; InsertionSort(s, len); for (int i=0; i<len; i++) { cout << s[i] << " "; } cout << endl; return 0; }
第二种,使用vector实现
#include <iostream>
#include <vector>
using namespace std;
void InsertionSort(vector<int>& A, vector<int>::size_type length)
{
/*
第0个位置有序,从第1个位置开始(j=1)
每次j:将A[j]插入到有序A[0...j-1]中
直到j>n为止
*/
for (int j=1; j<length; j++)
{
int key = A[j];
int i = j-1;
while (i>=0 && A[i]>key)
{
A[i+1] = A[i];
i--;
}
A[i+1] = key;
}
}
int main()
{
vector<int> s;
int num;
while (cin >> num)
{
s.push_back(num);
if (cin.get() == '\n') break;
}
InsertionSort(s, s.size());
for (vector<int>::size_type ix=0; ix!=s.size(); ix++)
cout << s[ix] << " ";
cout << endl;
return 0;
}

浙公网安备 33010602011771号