排序

来源:互联网 发布:淘宝一元买东西在哪里 编辑:程序博客网 时间:2024/04/30 02:41
排序算法属于算法基本功,单论难度,都是非常简单的。所以经常作为算法的入门,作为新手来说,可以作为初始的学习材料。训练排序主要的目的,是了解基本的排序原理和将算法编写为代码的基本方法。
 

大致来说,常见的排序算法有以下几种:冒泡排序(Bubble Sort);选择排序(Selection Sort);插入排序(Insertion Sort );归并排序(Merge Sort);快速排序(Quick Sort);堆排序(Heap Sort);桶排序(Bucket Sort)等等。这么看来,还是蛮多。不过在现实应用当中,大多时候像排序这种基础功能,都有现成的内建函数帮助我们完成(例如Python中的list.sort()以及sorted(list)),如以下代码所示:


aList = [6, 5, 3, 1, 8, 7, 2, 4]new_list = sorted(aList)print(aList)print(new_list)aList.sort()print(aList)


输出结果为:
[6, 5, 3, 1, 8, 7, 2, 4]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]


这里,顺便说一下Python中sort与sorted的区别:sort是对数组原地排序,直接按照大小顺序改变原数组,是没有返回值的(返回值其实是None);而sorted则是生成一个按顺序排列的新数组。


总之,如果利用内建函数排序,是很方便的,所以平时用的时候首先推荐的就是这种方式,一来,省去了写排序算法的麻烦,二来,别人写好的东西绝大多数情况下比我们写的运行效率要更高。省事又好用,何乐不为?


但是,作为算法训练,我们依旧要学习如何写前面提到的几种排序算法。先从冒泡排序开始吧。

0 0
原创粉丝点击