1.选择排序
原理:第一次从待排序的数据元素中选出最小(或最大的)一个元素,存放在序列的起始位置,然后从剩余的未排序元素中寻找到最小(大)元素,继续放在起始位置直到未排序元素个数为0。、
大致步骤:
1>在序列中选出最小(最大)值放在序列的起始位置
2>在从剩余元素中继续寻找最小(最大)值放在未排序的起始位置
3>重复2>直到排序完成
def select_sort(list): for i in range(0,len(list)): minIndex=i for j in range(i+1,len(list)): if list[minIndex]>list[j]: minIndex=j list[i],list[minIndex]=list[minIndex],list[i] return list
2.冒泡排序
原理:在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序。
大致步骤:
1>从第一个元素与后面相邻元素比较。如 12 23 34,比较后将较大元素放到右边最终,将最大的元素放在了最右边
2>重复1>直到排序完成
def bubble_sort(list): for i in range(0,len(list)): for j in range(0,len(list)-i-1): if list[j]>list[j+1]: list[j+1],list[j] = list[j],list[j+1] return list
3.求最大值
def process(arr,L,R): if L==R: return arr[R] mid = L+((R-L)>>1) leftMax = process(arr,L,mid) rightMax = process(arr,mid+1,R) return max(leftMax,rightMax) def getMax(arr): return process(arr,0,len(arr)-1)