1、简单选择排序,基于O(n2)时间复杂度的排序算法;

2、冒泡排序:基于O(n2)时间复杂度的排序算法;

3、简单插入排序;

4、希尔排序;

5、归并排序,基于归并操作的一种排序算法;

6、快速排序,属于分治法的一种;

7、堆排序;

文章我们主要介绍下 冒泡排序。

在若干个随机的 数字,将他们按照从小到大(从大到小)的顺序进行排列。

基本思想:两两比较数的大小,满足小于(大于)的条件,交换他们的位置,依次类推:

如数组的5个元素的值为: 5 4 3 2 1

第一次: 4 3 2 1 5

第二次: 3 2 1 4 5

第三次: 2 1 3 4 5

第四次: 1 2 3 4 5

核心代码:

void Bubble_sort(int arr[]) // 冒泡排序
{int i = 0, j = 0;for(i = 0; i < NUM; i++){for(j = 0; j < NUM-1; j++){if(arr[j] > arr[j+1]){int tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;}}}
}

冒泡排序的时间复杂度是一种用时间换空间的排序方法,时间复杂度为O(n2)。

demo:

#include <iostream>
using namespace std;#define NUM 5void Input(int arr[])
{int i;cout << "Please input "<< NUM << "number: ";for(i = 0; i < NUM; i++){cin >> arr[i];}}
void Output(int arr[])
{int i= 0;for(i = 0; i <NUM; i++){cout << arr[i] << " ";}
}
void  Select_Sort(int arr[])// 选择排序
{int i = 0, j = 0;for(i = 0; i <NUM-1; i++){for( j =i+1 ;j < NUM; j++){int temp = arr[i];if(temp > arr[j]){arr[i] = arr[j];arr[j] = temp;}}}
}
void Bubble_sort(int arr[]) // 冒泡排序
{int i = 0, j = 0;for(i = 0; i < NUM; i++){for(j = 0; j < NUM-1; j++){if(arr[j] > arr[j+1]){int tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp;}}}
}
int main()
{int array[NUM];Input(array);cout << "Output in order from large to small" <<endl;//Select_Sort(array);Bubble_sort(array);cout << "Output the ten number: ";Output(array);cout << endl;getchar();return 0;
}

C/C++ 简单排序之冒泡排序相关推荐

  1. 【数据结构笔记32】排序算法概述、简单排序(冒泡排序、插入排序)、逆序对

    本次笔记内容: 9.1.1 概述 9.1.2 冒泡排序 9.1.3 插入排序 9.1.4 时间复杂度下界 文章目录 排序算法前提条件 冒泡排序 插入排序 时间复杂度下界 逆序对(inversion) ...

  2. 三种简单排序算法---冒泡排序,简单选择排序,直接插入排序

    冒泡排序 核心思想:类似水泡一样,一趟比较,通过相邻元素的交换,冒出当前序列的最小值(最大值)到相应位置 复杂度分析 最好的情况:序列本身有序,只要进行n-1次比较,无需交换,时间复杂度为O(n) 最 ...

  3. 数据结构 排序【简单排序(冒泡、插入)、希尔排序、堆排序、排序方法的综合比较、2套 排序汇总代码】

    目   录 第9章 排序(上) 9.1 简单排序(冒泡.插入) 1.前提 2.简单排序(冒泡排序) 3.简单排序(插入排序) 4.时间复杂度下界 9.2 希尔排序 9.3 堆排序 排序方法综合比较 排 ...

  4. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序

    [简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...

  5. 简单入门排序算法(直接插入排序,折半插入排序,希尔排序,冒泡排序,堆排序,归并排序)

    预备知识(排序数组的创建20,100 ,500 个随机数进行排序) "Struct.h" #pragma once #include<iostream> #includ ...

  6. 10种排序算法比较(直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序、基数排序、折半插入排序、2路插入排序)

    本文(所有排序算法代码+综合比较代码)链接:https://download.csdn.net/download/qq_39932172/11217572 一.比较目的: 由于<数据结构> ...

  7. 八大排序(一):四种简单的排序(直接插入排序、希尔排序、冒泡排序、选择排序)

    源码地址: https://github.com/TimePickerWang/aimed-at-offer/blob/master/java%E6%BA%90%E7%A0%81/Sort.java ...

  8. TZC 1283: 简单排序 —— 冒泡排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.冒泡排序原理请参见:https://www.runoob.com/w3cnote/bubble-so ...

  9. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...

最新文章

  1. 【年终总结】2020年有三AI做了什么,2021年我们要做什么?
  2. 牛客多校2 - Interval(网格图最大流转换为对偶图最短路)
  3. 基于PYNQ-Z2开发板实现矩阵乘法加速详细流程
  4. js递归遍历json树_2020-08-26:裸写算法:树的非递归先序遍历
  5. gradle:Creating New Gradle Builds
  6. 只允许,同一域名下IFRAME,禁止直接访问页面
  7. OpenCV4.5.1 | 使用一行代码将图像匹配性能提高14%
  8. 项目质量监测(三)e2e test端到端测试——单元测试和端到端测试 e2e test工具-Cypress Nightwatch TeatCafe Codecov-测试结果可视化
  9. 材料科学需要用计算机吗,计算机在材料科学中的运用分析
  10. 机器狗病毒(又称下载者木马病毒)的手工毒杀
  11. 利用云效度量功能进行质量运营和效率驱动提升
  12. python编程大赛队名_同行——团队展示
  13. 本题要求对两个整数a和b,输出其中较大的数。
  14. 东芝有刷直流电机驱动器IC TB67H450FNG
  15. 选择工业相机需要知道的50个问题
  16. 期货反向对冲-要成为长期赚钱的1%,你得学会反着干
  17. 弹幕 mysql_3、Flask构建弹幕微电影网站-安装mysql数据库及配置
  18. SecureCRT SSH远程登入connection was reset
  19. OSGI框架------HelloWorld程序
  20. 25组-四象限法进行功能分析

热门文章

  1. 无法打开编译的html,解决VS在编译的时候无法打开...obj文件的问题
  2. 苏如是:香港中鼎资本与您分享“数实共生世界”和“后人类社会”
  3. EasyExcel读excel文件模板校验暨时间格式正则表达式
  4. Mobile开发(绘制背景图片)
  5. 广电网络宽带电视网关简介与优化设置
  6. 第十章:项目沟通管理 - (10.0 项目沟通管理是什么)
  7. library sort (图书馆排序)
  8. 计算机桌面图标设置密码,教你怎么设置电脑开机密码
  9. 使用Freemark和aspose.word实现动态word转pdf
  10. [源码和文档分享]基于JAVA的实现学生卡管理系统