排序
2016-03-21 19:43
239 查看
排序算法属于算法基本功,单论难度,都是非常简单的。所以经常作为算法的入门,作为新手来说,可以作为初始的学习材料。训练排序主要的目的,是了解基本的排序原理和将算法编写为代码的基本方法。
大致来说,常见的排序算法有以下几种:冒泡排序(Bubble Sort);选择排序(Selection Sort);插入排序(Insertion Sort );归并排序(Merge Sort);快速排序(Quick Sort);堆排序(Heap Sort);桶排序(Bucket Sort)等等。这么看来,还是蛮多。不过在现实应用当中,大多时候像排序这种基础功能,都有现成的内建函数帮助我们完成(例如Python中的list.sort()以及sorted(list)),如以下代码所示:
输出结果为:
[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则是生成一个按顺序排列的新数组。
总之,如果利用内建函数排序,是很方便的,所以平时用的时候首先推荐的就是这种方式,一来,省去了写排序算法的麻烦,二来,别人写好的东西绝大多数情况下比我们写的运行效率要更高。省事又好用,何乐不为?
但是,作为算法训练,我们依旧要学习如何写前面提到的几种排序算法。先从冒泡排序开始吧。
大致来说,常见的排序算法有以下几种:冒泡排序(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则是生成一个按顺序排列的新数组。
总之,如果利用内建函数排序,是很方便的,所以平时用的时候首先推荐的就是这种方式,一来,省去了写排序算法的麻烦,二来,别人写好的东西绝大多数情况下比我们写的运行效率要更高。省事又好用,何乐不为?
但是,作为算法训练,我们依旧要学习如何写前面提到的几种排序算法。先从冒泡排序开始吧。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- JavaScript演示排序算法
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例