当前位置: 首页 > news >正文

插入排序c++

插入排序的时间复杂度为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;
}

相关文章:

  • 【BP神经网络】实战
  • PHP语言的区块链扩展性
  • 大模型后训练+微调
  • MAC地址IP地址如何转换?
  • LuaJIT 学习(5)—— string.buffer 库
  • 梧桐:开发者的命令行效率应用
  • 打开的idea项目maven不生效
  • C++20 的 `std::remove_cvref`:简化类型处理的利器
  • Python扑克牌小游戏
  • Redis哨兵:从看门狗到导盲犬的进化史
  • C#中运算符重载‌你会用吗?
  • Day16:最小的k个数
  • [CISSP] [3] 人员安全与社会工程
  • 栈刷题+总结
  • 全概公式和贝叶斯公式
  • 机器学习中的 K-均值聚类算法及其优缺点。
  • 如何在AVL树中高效插入并保持平衡:一步步掌握旋转与平衡因子 —— 旋转篇
  • 【.Net 9下使用Tensorflow.net---通过LSTM实现中文情感分析】
  • PentestGPT 下载
  • RHCE(RHCSA复习:npm、dnf、源码安装实验)
  • 俄土外长通话讨论俄乌谈判问题
  • 学习时报头版:世界要公道不要霸道
  • 水豚出逃40天至今未归,江苏扬州一动物园发悬赏公告
  • 印度外交秘书:印巴军方将于12日再次对话
  • 婚姻登记“全国通办”首日观察:数据多跑路,群众少跑腿
  • 印度军方否认S-400防空系统被摧毁