选择排序、冒泡排序与快速排序

1.冒泡排序

1.1冒泡排序实现方法

冒泡排序(Bubble Sort) 最为简单的一种排序,通过重复走完数组的所有元素,通过打擂台的方式两个两个比较,直到没有数可以交换的时候结束这个数,再到下个数,直到整个数组排好顺序。因一个个浮出所以叫冒泡排序。双重循环时间 O(n^2)。

1.2冒泡排序实现代码

1.3冒泡排序特点

1、空间复杂度低,时间复杂度高

2、升序排序中每一轮比较会把最大的数下沉到最低,所以相互比较的次数每一轮会比前一轮少一次。

3、是一种稳定的排序算法

2.选择排序

2.1选择排序实现方法

选择排序(Select Sort) 是直观的排序,通过确定一个 Key 最大或最小值,再从带排序的的数中找出最大或最小的交换到对应位置。再选择次之。双重循环时间复杂度为 O(n^2)

2.2选择排序实现代码

2.3选择排序特点

选择排序是一种简单的排序算法,适用于数据量较小的情况,因为根据时间复杂度分析,数据量越大,选择排序所花费的时间按照平方倍数增长,会非常慢。 但是选择排序也有它的优势,选择排序的优势就是思维逻辑简单。 选择排序还有个特点,就是不论数组的顺序是排好序或者是乱序的,选择排序都需要花费一样的时间来计算。 比如,利用选择排序对数组 {1,2,3,4,5}和数组 {3,1,4,2,5}排序所花费的时间是一样的。

3.快速排序

3.1快速排序实现方法

快速排序(QuickSort)是排除稳定性因素后最常用的排序。给看官介绍两种使用方法,一种值直接在我文件 stdlib.h 头文件中的 qsort 函数实现是和正常写代码一样的。通过使用qsort(数组名,长度,sizeof(第一个数长度),compInc/comoDec) 进行实现数组的排序。后面的是通过递归调用的形式。

3.2快速排序实现代码

3.3快速排序特点

快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。

4排序方法的对比

5.总结

三种排序方法中,快速排序的时间复杂度通常是最低的,选择与冒泡排序的时间复杂度相同,所以在使用排序算法时,尽量使用快速排序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值