Python实现几种常见排序代码
2017-07-12 15:00
357 查看
插入排序法:
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。
冒泡排序法
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
快速排序法:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
直接选择排序:
基本思想:第1趟,在待排序记录r1 ~ r
中选出最小的记录,将它与r1交换;第2趟,在待排序记录r2 ~ r
中选出最小的记录,将它与r2交换;以此类推,第i趟在待排序记录r[i] ~ r
中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。
def insert_sort(lists): # 插入排序 count = len(lists) for i in range(1, count): key = lists[i] j = i - 1 while j >= 0: if lists[j] > key: lists[j + 1] = lists[j] lists[j] = key j -= 1 return lists
冒泡排序法
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
def bubble(list): m=len(list) for i in range(len(list)-1): m=m-1 for j in range(m): if list[j]>list[j+1]: list[j],list[j+1]=list[j+1],list[j] return list
快速排序法:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
def quicksort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quicksort(left) + middle + quicksort(right)
直接选择排序:
基本思想:第1趟,在待排序记录r1 ~ r
中选出最小的记录,将它与r1交换;第2趟,在待排序记录r2 ~ r
中选出最小的记录,将它与r2交换;以此类推,第i趟在待排序记录r[i] ~ r
中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕
def select_sort(lists): # 选择排序 count = len(lists) for i in range(0,count): min=i for j in range(i+1,count): if lists[min]>lists[j]: min=j lists[min],lists[i]=lists[i],lists[min] return lists
相关文章推荐
- 几种常见的排序C实现
- Java实现几种常见排序方法(下) .
- 数组几种常见排序的javascript实现
- Java实现几种常见排序方法
- Java实现几种常见排序方法
- Java实现几种常见排序方法(上)
- Python实现的几种排序(来自wiki百科)
- Java实现几种常见排序方法
- 从“假如有以下几种价格10,20,50,请你代码实现将他们排序输出”看设计模式中的策略模式
- Java实现几种常见排序算法代码
- Java实现几种常见排序方法(上)
- Java实现几种常见排序方法(上)
- 几种常见排序的实现
- Java简单实现几种常见排序方法
- Java实现几种常见排序方法(上)
- Java实现几种常见排序方法
- Java实现几种常见排序方法(下)
- Java实现几种常见排序方法
- Java实现几种常见排序方法
- Java实现几种常见排序方法