算法中最基础的应该就是排序算法了,今天简单介绍一下几种常用的排序算法
冒泡排序
冒泡排序每轮走访一次要排序的元素列表,依次比较两个相邻的元素,如果两个元素顺序不正确的话就将他们交换过来调整好顺序,这样的话每一轮比较的最大的值会浮到最上方,也就是变为最后一个值。按照这样的想法执行的话,相当于每一轮的最后一个元素不需要参与到下一轮的比较(因为已经是最大了)。
python实现:
def bubble_sort(arr):
for i in range(1, len(arr)):
# 这里表示要排序多少次,比如只有两个元素的话肯定只需要排序一次就结束啦,所以从1到元素长度的次数
for j in range(0, len(arr)-i):
# 这里表示对从第一个元素到之后元素的循环,减去i是因为len(arr)-i之后的元素已经被排序好了
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 这里的步骤就是在将最大的元素放到当前正在排序的元素的最后一位
#(有一部分已经排好的就不参与排序了)
return arr
选择排序
选择排序的想法是每次都选择最小的值放在最左边,执行len(arr)-1次即可。
python实现:
def selection_sort(arr):
for i in range(len(arr)-1):
min_num_index =<