码迷,mamicode.com
首页 > 编程语言 > 详细

排序之表排序、基数排序及所有排序算法比较

时间:2015-07-10 18:59:48      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

本学习笔记部分内容来自浙江大学网易云课堂,谢谢!

1、表排序

定义一个指针数组做为表。排序的时候,数组位置上的数值不变,改变的是指针的指向。
技术分享
如该图,初始数值:f d c a g b h e   开始时,比较f>d,则指针0指向d,指针1指向f。之后比较f>c,d>c,则指针0指向c,指针1指向d,指针2指向f。以此类推,最终指针0指向a的位置(即table[0]=3,A[3]那个位置)

2、基数排序

基本思想:比如十进制数字排序,先按个位数大小排,再按十位数大小排,依次。举例如下:
技术分享
基数排序可以用来进行多关键字排序。如扑克牌:花色和数字大小两种关键字。

3、排序算法比较

技术分享
注:稳定性是指如果两个数相等,排完序后,其相对位置有没有发生变化,没变的话就是稳定的。希尔排序的d取决于增量序列的选择,最大为2。
当待排序列已经基本有序时,快速排序算法效率最差。
插入排序,在最后一趟开始之前,可能所有的元素都不在自己的位置上。

版权声明:本文为博主原创文章,未经博主允许不得转载。

排序之表排序、基数排序及所有排序算法比较

标签:

原文地址:http://blog.csdn.net/qustqustjay/article/details/46833831

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!