两种交换排序算法:冒泡排序和快速排序
一、冒泡排序
空间复杂度:O(1)
时间复杂度:最好O(n),最坏和平均为O(n^2)
稳定性:稳定
适用性:顺序表、链表
//冒泡排序
void BubbleSort(int A[],int n){for(i=0;i<n-1;i++){flag=false; //本趟是否发生了交换for(j=n-1;j>i;j--){if(A[j]<A[j-1]){swap(A[j-1],A[j]);flag=true;}}if(flag==false) //说明没发生交换,已经有序return;}
}
二、快速排序
空间复杂度:最好和平均为O(logn),最坏O(n)
时间复杂度:最好O(nlogn),最坏为O(n^2),平均接近O(nlogn)
稳定性:不稳定
适用性:顺序表
//快速排序
int Partition(int A[],int low,int high){int pivot=A[low];while(low<high){while(A[high]>=pivot&&low<high) high--;A[low]=A[high];while(A[low]<=pivot&&low<high]) low++;A[high]=A[low];}A[low]=pivot; //最终基准(枢轴)放在low所指的位置,此时low==highreturn low;
}void QuickSort(int A[],int low,int high){if(low<high){int pivotpos=Partition(A,low,high);QuickSort(A,low,pivotpos-1);QuickSort(A,pivotpos+1,high);}
}
两种交换排序算法:冒泡排序和快速排序相关推荐
- 排序算法之交换排序(冒泡排序、快速排序)
交换排序(冒泡排序.快速排序) 交换排序 冒泡排序 概念 算法实现 快速排序 概念 算法实现 后续 交换排序 所谓交换,是指根据序列中两个关键字的比较结果来对换这两个记录在排序中的位置. 冒泡排序 概 ...
- 【MySQL】MySQL 两种排序算法
1.概述 原文:高性能MySQL一书.再抄的,找得快. 无论如何排序都是-一个成本很高的操作,所以从性能角度考虑,应尽可能避免排序或者尽可能避免对大量数据进行排序. 当不能使用索引生成排序结果的时候M ...
- ML之回归预测:利用两种机器学习算法(LiR,XGBoost(调优+重要性可视化+特征选择模型))对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值
ML之回归预测:利用两种机器学习算法(LiR,XGBoost(调优+重要性可视化+特征选择模型))对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值 目录 输出结果 1. ...
- 近似装箱问题(两种脱机算法实现)
[0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "近似装箱问题(两种脱机算法实现)" 的idea 并用源代码加以实现: 0.2) 近似 ...
- 两种不同算法的AMSR-2产品下载方法
** 两种不同算法的AMSR-2产品下载方法 ** AMSR-2传感器搭载于全球变化观测计划GCOM(Global Change Observation Mission)的W1卫星,于2012年5月1 ...
- 【计算机图形学】 圆的两种生成算法(角度微分法、Bresenham算法)
圆的两种生成算法(角度微分法.Bresenham算法) 文章目录 1.角度微分法的原理 2.角度微分法的实现(基于matlab) 3.Bresenham 算法的原理 4.Bresenham 算法的实现 ...
- 【算法之家】——交换排序之冒泡排序与快速排序
[前言] 冒泡排序和快速排序属于交换排序,快速排序是冒泡排序的一种改进算法.我更觉得快速排序更像是一种特殊的二分查找,从两头开始查找,用法更加的巧妙! [内容] 冒泡排序的基本过程用如下的动态图表示: ...
- 【C语言】两种方式实现冒泡排序算法
题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...
- c语言冒泡排序法程序填空_【C语言】两种方式实现冒泡排序算法
题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...
最新文章
- DNS 隐蔽通道工具资料汇总
- wust 1599弗洛伊德
- html5 图片上传 预览
- Swift 5 时代的机遇与挑战到底在哪里?
- [Ext JS 4] 实战之 Picker 和 Picker Field
- php 业务管理,PHPOA集团版协同套件:整合集团业务的管理平台
- linux vim命令的意思,Linux 中 vim 是什么意思?
- QQ消息 pc端防撤回
- usb口拒绝访问_电脑插上U盘显示无法访问 拒绝访问怎么回事
- 分库分表学习总结(1)——数据库中间件MyCat学习总结之MyCat入门简介
- 系统集成项目管理工程师(项目经理)笔记
- 现代软件工程 第一章 【概论】练习与讨论 第2题 邓杰
- mac上chrome插件安装
- 电池充电IC市场现状研究分析与发展前景预测报告
- 跨部门不配合工作_跨部门对接很难?同事不配合你?来,我教你怎么搞定!
- BZOJ3875-[Ahoi2014Jsoi2014]骑士游戏
- DES算法实现S盒替换
- 用python做通讯录包括姓名地址qq_我是如何用Python获取整个学校女生电话和QQ?技术撩妹...
- Lenovo YOGA系列笔记本如何进入BIOS
- 微信小程序人员组织结构
热门文章
- pyhanlp 命名实体识别
- Git 提交 .gitignore文件
- 【UVA 437】The Tower of Babylon(记忆化搜索写法)
- update-alternatives使用方法
- driver: linux2.6 内核模块导出函数实例(EXPORT_SYMBOL)
- tessorflow实战
- python正则表达式——regex模块
- 区块链BaaS云服务(39)时戳信息Bystack“架构“
- 区块链BaaS云服务(39)时戳信息Bystack“架构设计”
- 能量分析攻击day02