常用排序算法的Golang实现
最近在学习Golang,就把之前写过的排序算法拿golang复刻一下吧。
实现思路可以看python篇哈。
最近在学习Golang,就把之前写过的排序算法拿golang复刻一下吧。
实现思路可以看python篇哈。
之前做过常用排序算法的python实现,因为python的语法简单,个人喜欢用python去练习算法题目,毕竟自己是以JavaScript作为主力开发语言的,python仅仅知道基础语法,所以以后准备用JavaScript去练习算法。先把常用排序算法用JavaScript重新实现一遍吧。
本文仅提供冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序的Python实现。
在最开始先列出上述排序算法的时间复杂度:
冒泡排序bubbleSort()复杂度O(n^2)
选择排序 selectionSort() 复杂度O(n^2)
插入排序 insertionSort() 复杂度O(n^2)
希尔排序 shellSort() 复杂度O(n)与O(n^2)之间
归并排序 mergeSort() 复杂度O(nlog n) 需要额外使用一倍的存储空间
快速排序 quickSort() 复杂度O(nlog n) 不需要额外使用存储空间