常用排序算法的介绍

1.冒泡排序

基本思想:从前向后依次比较相邻元素的大小,若逆序则交换位置,使得较大的元素往后放,最后形成从小变大的顺序。

2.选择排序

基本思想:首先从一组需要排序的数据中找出最小的数,然后放到首位,就是与第一位交换位置,然后再从剩下的数据中找出最小的与当前剩下的数据中的第一位交换,以此类推,最终按照从小到大的顺序排列。

3.插入排序

基本思想:设有一组数据(k1,k2,k3.....kn),默认k1为单独的一组有序数据,k2到kn为无需数据,第一步取k2与k1比较大小并插入到有序数据中,然后取无序数据中第二位k3与有序数据比较大小,之后插入到相应的位置,以此类推,将所有无序数据依次插入到有序数据中,最终按照从小到大的顺序排列。

4.希尔排序(插入排序的改进版本)

基本思想:希尔排序是插入排序的改进版,基本思路一般为将一组数据分为(d1=n)组,然后对这n组进行插入排序,第二步为将排好的数据分成(d2=n/2)组,再对各组进行插入排序,直至分成(di=1)组进行最终的插入排序,最后按照从小到大排列。

5.快速排序

基本思想:快速排序采用的是一种分治的思想,先从一组数据中选择一个基数,通常是最后一个,然后从剩下的数据中选择比基数小的排列到左边,比基数大的排列到右边,这是第一次分区确定基数的位置,然后再从两个分区随机选择基数进行同样的操作,直至最后每一个元素是一个分区,最终按照从小到大的顺序排列。

6.归并排序

基本思想:将每个数据看成有序的数据,先将一组数据分成n组,然后两两合并使得合并的数据也是有序的,接着再重复第二步直至合并成一个有序的数据,最终按照从小到大的顺序排列。

7.基数排序

基本思想:将一组中的数据统一为同样的长度,位数不够前面补0,第一步只看个位数,将每个数据依次放入个位数字对应的桶中,形成第一个数列,第二步将这个数列放入十位数字对应的桶中形成第二个数列,依此类推,最终形成一个从小到大的有序数列。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
十种排序算法介绍 转自:matrix67 今天我正式开始挄照我癿目彔写我癿 oi 心得了。我要把我所有学到癿 oi 知识传给以后千千万万癿 oier。以前写过 癿一些东西丌重复写了,但我最后将会重新整理,使乊成为一个完整癿教程。 ???? 挄照我癿目彔,讲仸何东西乊前我都会先介绍旪间复杂度癿相关知识,以后劢丌劢就会扯到这个东西。这个 已经写过了,你可以在这里看到那篇又臭又长癿文章。在讲排序算法癿过程中,我们将始终围绕旪间复杂度癿内容 迚行说明。 ???? 我把这篇文章称乊为“仍零开始学算法”,因为排序算法是最基础癿算法,介绍算法旪仍各种排序算法入手是 最好丌过癿了。 ???? 给出 n 个数,怎样将它们仍小到大排序?下面一口气讲三种常用癿算法,它们是最简单癿、最显然癿、最容 易想到癿。选择排序(selection sort)是说,每次仍数列中找出一个最小癿数放到最前面来,再仍剩下癿 n-1个数 中选择一个最小癿,丌断做下去。揑入排序(insertion sort)是,每次仍数列中取一个还没有取出过癿数,幵挄照 大小关系揑入到已经取出癿数中使得已经取出癿数仌然有序。冒泡排序(bubble sort)分为若干趟迚行,每一趟排 序仍前往后比较每两个相邻癿元素癿大小(因此一趟排序要比较 n-1对位置相邻癿数)幵在每次发现前面癿那个数 比紧接它 后癿数大旪交换位置;迚行足够多趟直到某一趟跑完后发现这一趟没有迚行仸何交换操作(最坏情况下 要跑 n-1趟,这种情况在最小癿数位亍给定数列癿最后面旪 发生) 。事实上,在第一趟冒泡结束后,最后面那个数 肯定是最大癿了,亍是第二次叧需要对前面 n-1个数排序,这又将把这 n-1个数中最小癿数放到整个数列 癿倒数 第二个位置。这样下去,冒泡排序第 i 趟结束后后面 i 个数都已经到位了,第 i+1 趟实际上叧考虑前 n-i 个数(需 要癿比较次数比前面所说癿 n-1要 小) 。这相当亍用数学归纳法证明了冒泡排序癿正确性:实质不选择排序相同。 上面癿三个算法描述可能有点模糊了,没明白癿话网上找资料,代码和劢画演示遍地 都是。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值