插入排序的最好的情况是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++实现插入和冒泡排序相关推荐

  1. 选择、插入、冒泡排序

    选择.插入.冒泡三种算是最典型的排序算法了,空间复杂度都为O(1) 选择排序时间复杂度跟初始数据顺序无关,O(n2),而且还不稳定; 插入排序时间复杂度跟初始数据顺序有关最好O(n),最坏O(n2), ...

  2. 两个for做数据插入_冒泡排序、选择排序、插入排序

    排序算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不 ...

  3. 选择、插入、冒泡排序实现和比较

    看代码(这三个排序可以排序实现Comparable接口的对象) 我自己把选择和冒泡搞混了,所以在这里给那些可能搞混的人说明一下,选择和冒泡是俩个不同的代码,简单的来说选择排序每次遍历只交换一次(或不交 ...

  4. C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)

    排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序:   直接插入排序    希尔排序 (插入)  冒泡排序     快速排序  (交换) 直接选择排序  ...

  5. 【数据结构】对排序的综合总结

    排序可以分为以下几个大类: (1)插入排序:直接插入排序.折半插入排序和希尔排序 (2)交换排序:快速排序和冒泡排序 (3)选择排序:简单选择排序和堆排序 (4)外部排序:归并排序和基数排序 针对内部 ...

  6. 数据结构与算法-排序与查找(java描述)

    在软件开发中,有两个常见的任务,一个是某一组中查找某个特定的元素,另一个是将某一组元素按照特定的顺序排序.我们可以使用多种算法来完成这些任务,而这些算法的差异也是值得我们去仔细研究的,接下来我们探究一 ...

  7. python实现排序算法_数据结构之(3)python实现排序算法

    常用排序与插入算法 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直 ...

  8. Java入门算法(数据结构篇)丨蓄力计划

    本专栏已参加蓄力计划,感谢读者支持 往期文章 一. Java入门算法(贪心篇)丨蓄力计划 二. Java入门算法(暴力篇)丨蓄力计划 三. Java入门算法(排序篇)丨蓄力计划 四. Java入门算法 ...

  9. Java入门算法(贪心篇)丨蓄力计划

    本专栏已参加蓄力计划,感谢读者支持 往期文章 一. Java入门算法(贪心篇)丨蓄力计划 二. Java入门算法(暴力篇)丨蓄力计划 三. Java入门算法(排序篇)丨蓄力计划 四. Java入门算法 ...

最新文章

  1. Mysql 数据库锁表的原因和解决方法
  2. JdbcTemplate中queryForObject方法返回空结果或不正确结果数量的解决方法
  3. java day10(续day9)
  4. java application文件夹_关于java:如何动态获取Spring Boot Application jar的父文件夹路径?...
  5. oracle 11g 数据库cmd修改用户名密码及创建用户
  6. 酷炫加特技的个人主页
  7. perlin噪声函数
  8. 二维数组转化稀疏数组
  9. c语言野王验证,王者荣耀:“野王是如何炼成的?”,方法很简单,6个字而已...
  10. 未解决:火狐浏览器提示不安全的链接
  11. unicode汉字对照表
  12. 电路逻辑门图形符号汇总
  13. OpenCV學習筆記(6)基於 VC+OpenCV+DirectShow 的多個攝像頭同步工作
  14. linux中分隔符IFS
  15. 著名的菲尔人格测试!听说挺准的
  16. QTP - 29 What’s New in QTP QTP的一些功能介绍
  17. CodeForces 1A Theatre Square(水题)
  18. Serv-U安装方法
  19. 判断一个APP页面是原生的还是H5页面
  20. 【修真院“善良”系列之十八】WEB程序员从零开始到就业的全资料V1.0——只看这一篇就够了!

热门文章

  1. 【js】JavaScript parser实现浅析
  2. 【rman】list archivelog all与list backup of archivelog all
  3. 20个响应式网页设计中的“神话”误区
  4. PS如何对JPG文件直接抠图
  5. PHP与ThinkPHP读写文件
  6. centos不能挂在ntfs
  7. open×××+Mysql+PAM构建强大的***系统
  8. 【转】关键字过滤算法
  9. linux学习笔记-chkconfig
  10. Microsoft SQL Server Desktop Engine安装过程中遇到的问题(2)