For-learning-Go-Tutorial

Go语言是谷歌2009发布的第二款开源编程语言。

Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

因而一直想的是自己可以根据自己学习和使用Go语言编程的心得,写一本Go的书可以帮助想要学习Go语言的初学者快速入门开发和使用!

Go排序算法及其性能比较

在我们开发的时候有的时候需要对一个数据集合进行排序,这时候我们就需要用到了排序算法,而Go的标准库提供了排序的包sort,实现了int,float64和string三种基础类型的排序接口。所有排序调用sort.Sort,内部根据排序数据个数自动切换最适合的排序算法(插入排序.快排和堆排序)。

因为Go中排序的包sort,里面是由三种排序算法(插入排序.快排和堆排序)具体实现的,因此真的排序算法又可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。

排序算法又分为稳定性算法和不稳定性算法:

  • 稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。

  • 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。

在Go排序算法这一章讲述的目录: