task19之視覺化氣泡排序的實現任務總結

2021-08-06 04:34:47 字數 847 閱讀 7796

task19和task18差不多,就是多了乙個視覺化排序,還有就是判斷輸入是否合法的條件多了一些。
**:

demo:

寫這個任務最頭痛的就是如何實現視覺化排序,其實現在我自己也不是特別會啊,都是review了別人的**然後搞懂那種,自己寫還是沒有什麼其他好的思路。網上也有一些資料,但是還是說的雲裡霧裡。要麼就是知乎上一些很酷炫的視覺化,可是對我這種基礎來說又太難了。這個問題之後還會追加,目前就寫了冒泡,之後再補上快排,選擇這些吧。

先就分析一些別人的實現思路吧,其實幾種排序資料結構都學過,也不難。關鍵是怎麼實現視覺化呢???

/ 視覺化排序過程

function

bubblesort

()

}else

},50)

}

如果按照一般的冒泡寫兩層for迴圈,那是看不到視覺化的結果的。所以這裡是通過if語句,遍歷執行,執行一次排序就呼叫一次draw()函式。也就是說邊執行排序邊繪製。同時還要設定setinterval,每隔多久就執行一次排序函式。但是我這個寫的看不清每一趟左右兩邊的交換過程。反正這個視覺化排序還需要繼續優化。

還有乙個問題就是打亂隨機出數字,這裡用到的是math.random,簡單總結一下:

function

mess

() draw();

}

math.random()會返回0-1之間的數字,如果你需要隨機從a-b的範圍生成一組數字,那麼就是:

math.random()*(b-a)+a這樣的模式就可以了。

這裡也是先運算元組,最後繪製data陣列的。

使用pygame實現視覺化氣泡排序

視覺化氣泡排序,使用pygame實現動畫演示,很簡單,大概100行多一點,適合向我一樣的新手用於練手的小專案 已經進行了詳細的注釋 環境 python3.7.3 pychram import pygame from random import randint gap 10 豎條的間隔 width 3...

cv2實現氣泡排序視覺化

之前在網上看到別人用opencv,pygame實現多種排序演算法的視覺化,十分有趣。參考文章 python實現排序演算法過程的視覺化 便通過氣泡排序進行嘗試,簡化了程式,主要嘗試opencv視覺化資料排序過程。import numpy as np import os import cv2 class...

視覺化的快速排序 JAVA

看了 演算法第四版 後,想要熟練下自己對排序演算法的理解,就選擇用快速排序來練手,並運用了 演算法第四版 提供的api,以實現排序演算法的視覺化。在眾多排序演算法中,快速排序是其中有很高效率的一種,同時也是較為複雜的排序演算法。快速排序是一種分治的排序演算法。其思想是將一段無序的資料進行切分後,在分...