插入排序
顾名思义,插入排序就是依次插入每个元素,使得新的数组有序。
算法流程:
-
对于一个有n个元素的数组,外层循环n-1次;当前索引设为i,范围从[1,n);初始有序数组只有instance[0]一个元素。
-
内层用while循环,将新的元素instance[i]插入到有序数组中去,使之有序。
代码:
#include <iostream>
#include <vector>
using namespace std;
// 升序
vector<double> Insert_Sort(vector<double> &instance)
{
int count = instance.size();
// n-1次
for (size_t i = 1; i < count; i++)
{
double max = instance[0];
int index = 0;
int j = i;
while (j > 0 && instance[j] < instance[j - 1])
{
double temp = instance[j];
instance[j] = instance[j - 1];
instance[j - 1] = temp;
j--;
}
}
return instance;
}
int main()
{
vector<double> test;
for (size_t i = 0; i < 5; i++)
{
double temp;
cin >> temp;
test.push_back(temp);
}
cout << test.size() << endl;
Insert_Sort(test);
for (size_t i = 0; i < 5; i++)
{
cout << test[i] << " ";
}
return 0;
}
稳定性
稳定算法