c++实现插入和冒泡排序
插入排序的最好的情况是O(n),最坏的情况O(n^2),因此是稳定的
冒泡排序最好的情况是O(n),最坏的情况O(n^2)因此是稳定的
//插入排序
void insert_sort(int* arr, int n) {
int temp = -1;
for (int i=1;i<n;++i){
temp = arr[i];
int j = i - 1;
//从后往前搬动数据
for (;j>=0;–j){
if (arr[j] >=temp){
break;
}
arr[j+1] = arr[j];
}
//当前的后一个位置,放入数据,空位置
arr[j + 1] = temp;
}
}
冒泡排序
void bubble_sort(int array[], int n)
{
bool flag = false;
for (int i = 1; i < n; i++) {
flag = false;
for (int j = 0; j < n-i; j++) {
if (array[j] < array[j + 1]) {
flag = true;
array[j] ^= array[j + 1];
array[j + 1] ^= array[j];
array[j] ^= array[j + 1];
}
}
if (!flag) {
break;
}
}
}
c++实现插入和冒泡排序相关推荐
- 选择、插入、冒泡排序
选择.插入.冒泡三种算是最典型的排序算法了,空间复杂度都为O(1) 选择排序时间复杂度跟初始数据顺序无关,O(n2),而且还不稳定; 插入排序时间复杂度跟初始数据顺序有关最好O(n),最坏O(n2), ...
- 两个for做数据插入_冒泡排序、选择排序、插入排序
排序算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不 ...
- 选择、插入、冒泡排序实现和比较
看代码(这三个排序可以排序实现Comparable接口的对象) 我自己把选择和冒泡搞混了,所以在这里给那些可能搞混的人说明一下,选择和冒泡是俩个不同的代码,简单的来说选择排序每次遍历只交换一次(或不交 ...
- C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)
排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序: 直接插入排序 希尔排序 (插入) 冒泡排序 快速排序 (交换) 直接选择排序 ...
- 【数据结构】对排序的综合总结
排序可以分为以下几个大类: (1)插入排序:直接插入排序.折半插入排序和希尔排序 (2)交换排序:快速排序和冒泡排序 (3)选择排序:简单选择排序和堆排序 (4)外部排序:归并排序和基数排序 针对内部 ...
- 数据结构与算法-排序与查找(java描述)
在软件开发中,有两个常见的任务,一个是某一组中查找某个特定的元素,另一个是将某一组元素按照特定的顺序排序.我们可以使用多种算法来完成这些任务,而这些算法的差异也是值得我们去仔细研究的,接下来我们探究一 ...
- python实现排序算法_数据结构之(3)python实现排序算法
常用排序与插入算法 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直 ...
- Java入门算法(数据结构篇)丨蓄力计划
本专栏已参加蓄力计划,感谢读者支持 往期文章 一. Java入门算法(贪心篇)丨蓄力计划 二. Java入门算法(暴力篇)丨蓄力计划 三. Java入门算法(排序篇)丨蓄力计划 四. Java入门算法 ...
- Java入门算法(贪心篇)丨蓄力计划
本专栏已参加蓄力计划,感谢读者支持 往期文章 一. Java入门算法(贪心篇)丨蓄力计划 二. Java入门算法(暴力篇)丨蓄力计划 三. Java入门算法(排序篇)丨蓄力计划 四. Java入门算法 ...
最新文章
- Mysql 数据库锁表的原因和解决方法
- JdbcTemplate中queryForObject方法返回空结果或不正确结果数量的解决方法
- java day10(续day9)
- java application文件夹_关于java:如何动态获取Spring Boot Application jar的父文件夹路径?...
- oracle 11g 数据库cmd修改用户名密码及创建用户
- 酷炫加特技的个人主页
- perlin噪声函数
- 二维数组转化稀疏数组
- c语言野王验证,王者荣耀:“野王是如何炼成的?”,方法很简单,6个字而已...
- 未解决:火狐浏览器提示不安全的链接
- unicode汉字对照表
- 电路逻辑门图形符号汇总
- OpenCV學習筆記(6)基於 VC+OpenCV+DirectShow 的多個攝像頭同步工作
- linux中分隔符IFS
- 著名的菲尔人格测试!听说挺准的
- QTP - 29 What’s New in QTP QTP的一些功能介绍
- CodeForces 1A Theatre Square(水题)
- Serv-U安装方法
- 判断一个APP页面是原生的还是H5页面
- 【修真院“善良”系列之十八】WEB程序员从零开始到就业的全资料V1.0——只看这一篇就够了!