程序员内功:八大排序算法

  • A+
所属分类:算法基础
摘要

如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。

程序员内功:八大排序算法

一、前言

如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。

想写出精炼、优秀的代码,不通过不断的锤炼,是很难做到的。

二、八大排序算法

排序算法作为数据结构的重要部分,系统地学习一下是很有必要的。

1、排序的概念

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。

排序分为内部排序和外部排序。

若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序

反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序

2、排序分类

八大排序算法均属于内部排序。如果按照策略来分类,大致可分为:交换排序、插入排序、选择排序、归并排序和基数排序。如下图所示:

程序员内功:八大排序算法

3、算法分析

下表给出各种排序的基本性能,具体分析请参看各排序的详解:

程序员内功:八大排序算法

4、系列文章

详细内容请看我的系列文章,以C++和Python进行实现:

排序(1):冒泡排序

排序(2):直接插入排序

排序(3):希尔排序

排序(4):快速排序

排序(5):简单选择排序

排序(6):堆排序

排序(7):归并排序

排序(8):基数排序

源码汇总https://github.com/Jack-Cherish/Algorithm

Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: