排序算法,下面算法均是使用Python实现:
插入排序
原理:循环一次就移动一次元素到数组中正确的位置,通常使用在长度较小的数组的情况以及作为其它复杂排序算法的一部分,比如mergesort或quicksort。时间复杂度为 O(n2) 。
# 1nd: 两两交换
def insertion_sort(arr):
for i in range(1, len(arr)):
j = i
while j >= 0 and arr[j-1] > arr[j]:
arr[j]
本文实例讲述了Python排序搜索基本算法之插入排序。分享给大家供大家参考,具体如下:
插入排序生活中非常常见,打扑克的时候人的本能就在用插入排序:把抽到的一张插入到手上牌的正确位置上。有两种插入排序方法,一种基于比较,另一种基于交换。代码如下:
1.基于比较的插入排序:
# coding:utf-8
def insertionSort(seq):
length=len(seq)
for i in range(1,length):
tmp=seq[i]
for j in
冒泡排序法
def bubbleSort(ls):
for j in range(len(ls)-1,0,-1):
for i in range(j):
if ls[i]>ls[i+1]:
ls[i],ls[i+1]=ls[i+1],ls[i]
对比的时间复杂度是O(n2),交换的复杂度也是O(n2)
冒泡排序法通常作为时间效率较差的排序法,作为其他算法的对比基准,其效率差在每个数据项在找到其最终位置前必须经
1.选择排序
算法简介:
在给定数组中,找到那个最小的数,与第一个元素交换位置,如果第一个元素就是最小的,那就和本身交换,然后在交换后的数组中,继续寻找最小的,和第二个元素交换,以此类推,每次都选择那个最小的数
故曰,选择排序
少废话,上代码:
class Selection:
def sort(self, nums):
# 外层循环,指定内层循环找到的最小值要交换到的位置
for i in range(len(nums)):
id