做网站的费用入什么科目/百度seo优化网站
插入排序的时间复杂度为O(N^2),和冒泡排序的时间复杂度相同,但是在某些情况下插入排序会更优。
插入排序的原理是:第1次在0~0范围内排序,第2次在0~1范围内排序,第3次在0~2范围内排序……相当于每次排序时都比上一次排序多一个数,每次排序只要比较这个多出来的数与前几个数的大小(插入前几个数),而前几个数已经排好了。
#include<iostream>
#include<vector>
using namespace std;
int main() {int n;cin >> n;vector<int> s(n);for (int i = 0; i < n; i++)cin >> s[i];for (int i = 1; i < n; i++) {for (int j = i - 1; j >= 0; j--) {if (s[j] > s[j + 1]) {s[j] = s[j] ^ s[j + 1];s[j + 1] = s[j] ^ s[j + 1];s[j] = s[j] ^ s[j + 1];}}}for (int i = 0; i < n; i++) cout << s[i] << " ";return 0;
}