排序算法(1)
l = [4,2,5,3,9,8,1] print(l) #冒泡排序 #冒泡排序的时间复杂度为O(n^2)。 ''' for i in range(1,len(l)): for j in range(len(l)-i): if l[j]>l[j+1]: l[j],l[j+1] = l[j+1],l[j] ''' #选择排序 #选择排序的时间复杂度为O(n^2) ''' for i in range(len(l)): for j in range(i+1,len(l)): if l[i] > l[j]: l[i],l[j] = l[j],l[i] ''' #插入排序法 #简单插入排序的时间复杂度也是O(n^2)。 ''' for i in range(1,len(l)): for j in range(i): if l[i] < l[j]: l.insert(j,l.pop(i)) ''' #快速排序法 #快速排序是不稳定的,其时间平均时间复杂度是O(nlgn)。 ''' def quickSort(arr,firstIndex,lastIndex): if firstIndex<lastIndex: divIndex=partition(arr,firstIndex,lastIndex) quickSort(arr,firstIndex,divIndex) quickSort(arr,divIndex+1,lastIndex) else: return def partition(arr,firstIndex,lastIndex): i=firstIndex-1 for j in range(firstIndex,lastIndex): if arr[j]<=arr[lastIndex]: i=i+1 arr[i],arr[j]=arr[j],arr[i] arr[i+1],arr[lastIndex]=arr[lastIndex],arr[i+1] return i quickSort(l,0,len(l)-1) '''