冒泡排序:
算法思想(从小到大排列):从队列的一端开始两两比较,如果前面的数字大于后面的数字,那么则交换两个位置的值,同时下标向后移动一位(由0变为1)。然后再和后面的数值进行比对如果还大于后面的就再进行交换。如果后面的数值大就不交换,仅仅移动下标位置即可。这样经过一次比较之后就把最大的那个数交换到了最后一个位置上。假如一共有n个数字,那么需要循环n-1次才能排序完成。
def bubble_sort(arr): for i in range(0, len(arr)-1): judge = 0 for j in range(0, len(arr)-1-i): if arr[j] > arr[j+1]: temp = arr[j] arr[j] = arr[j+1] arr[j+1]= temp judge = 1 if judge == 0: return arr return arr if __name__ == "__main__": arr = [1,4,2,5,77,43,2,4,56,43,79,0] print(bubble_sort(arr))
当没有 judge 的时候,及时队列是完全有序的也将会进行n-1次循环,所以judge可以用于判断队列的排序是否已经完成。