1、冒泡排序

冒泡排序的思想就是:大数沉底,小数浮起。 它的做法是:对于n个需要排序的数,每次都把未排序的数中最大的数,放到它最终所在的位置。冒泡排序需要进行n-1趟。算法的C++语言实现如下:

template <class elemType> void BubbleSort(elemType a[],int length)
{//外层循环为n-1趟for(int i=0;i<length-1;i++){//内层循环每一次让一个大数沉底for(int j=0;j<length-1;j++){if( a[j]>a[j+1] ){elemType temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}
}

2、选择排序

选择排序的思想和选择排序类似,它每次选择未排序中最小的数,把它放到最终的位置上。对n个需要排序的数,选择排序也许要进行n-1趟。用C++实现代码如下:

template <class elemType> void SelectionSort(elemType a[],int length)
{//外层循环进行n-1趟for(int i=0;i<length-1;i++){//标记最小值的位置int min = i;for(int j=i+1;j<length;j++){if( a[j]<a[min] ){min = j;}}if( min!=i ){elemType temp = a[i];a[i] = a[min];a[min] = temp;}}
} 

选择排序和冒泡排序的时间复杂度都是:O(n^2)。

实现冒泡排序和选择排序相关推荐

  1. 算法与数据结构(冒泡排序,选择排序和插入排序的总结)

    冒泡排序,选择排序和插入排序的总结 在规模较小时,或者元素的有序性较高时,插入排序的时间复杂度可以接近 O(n) ,是上述三种排序里表现最好的 一.通过表格我们可以发现,冒泡排序的时间复杂度是要优于选 ...

  2. JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找

    文章目录 1. 冒泡排序 2. 选择排序 3. 直接插入排序 4. 二分查找 1. 冒泡排序 原理:数组元素两两比较,大的往后放,经过一轮比较后,最大元素在最后面,如此往复. 举例说明: 代码: // ...

  3. 冒泡排序、选择排序和插入

    冒泡排序.选择排序和插入排序代码如下: package cn.luxh.app.test;public class SimpleSortUtil {/*** 冒泡排序* 从小到大排序* 思路:* 1) ...

  4. C语言排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)

    参考:C语言五大排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)动态演示 作者:一只青木呀 发布时间: 2020-09-09 20:18:43 网址:https://blog.csdn.net/ ...

  5. 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...

    掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等). 数组高级以及Arrays(掌握) 排序方法 空间复杂度 时间复杂度 稳定性 插 入 排 序 ...

  6. 冒泡排序和选择排序区别_你以为只是简单的排序?(一)

    一直在犹豫要不要写排序的文章,因为真的烂大街了.可是一旦细看,还真是很多值的思考的地方,所以还是选择记录一下 以下完整代码,均可从这里获取 https://github.com/Rain-Life/d ...

  7. Python排序算法(一)冒泡排序、选择排序、插入排序

    今天总结一下Python中的排序算法.这篇文章有的排序算法是:冒泡排序.选择排序.插入排序. 冒泡排序 先看一下代码. ''' 冒泡排序 '''def bubble_sort(aList):n = l ...

  8. js实现冒泡排序,快速排序,选择排序

    用js冒泡排序,快速排序,选择排序 1.冒泡排序 冒泡排序是比较经典的排序方法,是一种用时间换空间的排序方法.我总结了一下它的特点:(1)它的时间复杂度是:(2)每一趟相邻元素两两比较完毕就会产生最值 ...

  9. 【Java数据结构与算法】第七章 冒泡排序、选择排序、插入排序和希尔排序

    第七章 冒泡排序.选择排序.插入排序和希尔排序 文章目录 第七章 冒泡排序.选择排序.插入排序和希尔排序 一.冒泡排序 1.基本介绍 2.代码实现 二.选择排序 1.基本介绍 2.代码实现 三.插入排 ...

  10. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...

最新文章

  1. 全球首届APMCon,带你给“应用性能”把把脉
  2. [转载]iphone开发--改变UIPageControl里的小点的颜色
  3. 数据结构的简单理解(1)
  4. 《剑指offer》数据流中的中位数
  5. C++Vector使用方法
  6. 【WebRTC---入门篇】(十一)STUN协议
  7. dubbo 服务压测_Dubbo高性能网关--Flurry介绍
  8. 孤立森林(Isolation Forest)算法剖析
  9. 是做生意还是做事业,这是一个问题。
  10. Linux配置手册(八)基于MySQL构建PHP环境
  11. 数据链路层的流量控制
  12. 拓端tecdat|使用R语言进行时间序列(arima,指数平滑)分析
  13. PTA程序设计第六周
  14. 数字金字塔MySQL存储过程_千金良方——MySQL性能优化金字塔法则
  15. B75经典门户商业版Discuz模板下载
  16. Arduino作为编程器读写BIOS、bootloader、uboot或者breed
  17. jquery toggle_响应式WordPress主题教程–第6部分– jQuery Toggle菜单
  18. 工业级芯片可靠性试验项目条件
  19. 模拟电路--同相放大器和反相放大器的选择
  20. 接口基本知识 2016年12月24日

热门文章

  1. JavaScript 笔记2
  2. [转载] Python dict.keys方法
  3. [转载] 【Python】向json文件中追加新的对象
  4. 手机编程环境初尝试-用AIDE开发Android应用
  5. [转帖]规模化敏捷-简要对比SAFe、LeSS和DAD模式
  6. springboot 全局捕获异常
  7. CodeSmith使用存档
  8. 收缩Vcenter数据库
  9. 【52.55%】【BZOJ 4520】K远点对
  10. 杭电2391--Filthy Rich(DP)