算法(插入排序----手写5种方法)
Posted hzyimen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法(插入排序----手写5种方法)相关的知识,希望对你有一定的参考价值。
插入排序
什么是插入排序?
插入排序的核心思想
方法一: def insertSort(arr): for i in range(1,len(arr)): for j in range(0,i): if arr[j]>arr[i]: arr[j],arr[i]=arr[i],arr[j] return arr arr=[4,8,1,9,2,7] insertSort(arr)
执行结果:
>>> def insertSort(arr):
... for i in range(1,len(arr)):
... for j in range(0,i):
... if arr[j]>arr[i]:
... arr[j],arr[i]=arr[i],arr[j]
... return arr
...
>>> arr=[4,8,1,9,2,7]
>>> insertSort(arr)
[1, 2, 4, 7, 8, 9]
>>>
方法二: def insertSort(arr): for i in range(1,len(arr)): value=arr[i]#这里定义一个要比比较的值 for j in range(i,0,-1): if arr[j-1]>value: arr[j-1],arr[j]=arr[j],arr[j-1] return arr arr=[4,8,1,9,2,7] insertSort(arr) 执行结果:
>>> def insertSort(arr):
... for i in range(1,len(arr)):
... value=arr[i]#这里定义一个要比比较的值
... for j in range(i,0,-1):
... if arr[j-1]>value:
... arr[j-1],arr[j]=arr[j],arr[j-1]
... return arr
...
>>> arr=[4,8,1,9,2,7]
>>> insertSort(arr)
[1, 2, 4, 7, 8, 9]
>>>
方法三: def insertSort(arr): i=1 while i<len(arr): for i in range(1,len(arr)): value=arr[i] for j in range(i,0,-1): if arr[j-1]>value: arr[j-1],arr[j]=arr[j],arr[j-1] i+=1 return arr arr=[4,8,1,9,2,7] insertSort(arr)
执行结果:
>>> def insertSort(arr):
... i=1
... while i<len(arr):
... for i in range(1,len(arr)):
... value=arr[i]
... for j in range(i,0,-1):
... if arr[j-1]>value:
... arr[j-1],arr[j]=arr[j],arr[j-1]
... i+=1
... return arr
...
>>> arr=[4,8,1,9,2,7]
>>> insertSort(arr)
[1, 2, 4, 7, 8, 9]
>>>
方法四: def insertSort(arr): i=1 while i<len(arr): for i in range(1,len(arr)): value=arr[i] j=i while j>0: if arr[j-1]>value: arr[j-1],arr[j]=arr[j],arr[j-1] j-=1 i+=1 return arr arr=[4,8,1,9,2,7] insertSort(arr)
>>> def insertSort(arr):
... i=1
... while i<len(arr):
... for i in range(1,len(arr)):
... value=arr[i]
... j=i
... while j>0:
... if arr[j-1]>value:
... arr[j-1],arr[j]=arr[j],arr[j-1]
... j-=1
... i+=1
... return arr
...
>>> arr=[4,8,1,9,2,7]
>>> insertSort(arr)
[1, 2, 4, 7, 8, 9]
方法五: def insertSort(arr): for i in range(1,len(arr)): j=i while j>0: if arr[j-1]>arr[j]: arr[j-1],arr[j]=arr[j],arr[j-1] j-=1 i+=1 return arr arr=[4,8,1,9,2,7] insertSort(arr)
执行结果:
>>>
>>> def insertSort(arr):
... for i in range(1,len(arr)):
... j=i
... while j>0:
... if arr[j-1]>arr[j]:
... arr[j-1],arr[j]=arr[j],arr[j-1]
... j-=1
... i+=1
... return arr
...
>>> arr=[4,8,1,9,2,7]
>>> insertSort(arr)
[1, 2, 4, 7, 8, 9]
时间复杂度
以上是关于算法(插入排序----手写5种方法)的主要内容,如果未能解决你的问题,请参考以下文章