當前位置:編程學習大全網 - 編程語言 - VB!! 使用數組編寫壹個冒泡排序法的演示過程 程序演示冒泡法每次循環中交換相鄰元素後的數組排序結果

VB!! 使用數組編寫壹個冒泡排序法的演示過程 程序演示冒泡法每次循環中交換相鄰元素後的數組排序結果

既然要演示成動畫壹樣,本題的難點在於在Timer控件的timer事件中,構造出模擬雙層冒泡排序的循環,既然是雙層循環,所以需要兩個循環變量i,j,我們這裏利用i控制外層循環,j控制內層循環。然後我們需要壹個數組arr,需要壹個計算循環了多少次的累加變量n,然後需要壹個冒泡排序的中轉站變量m。於是我們在模塊的頂部,需要定義上面五個變量,如下:

Dim?arr

Dim?i?as?integer,?j?as?integer,?m?as?integer,?n?as?integer

那麽到我們點擊開始的時候,根據妳的題意,需要完成第壹,將textbox1的數字讀入到數組arr中,然後對內外層循環變量進行初始化,並且啟動計時器,於是代碼如下:

Private?sub?command1_Click()

arr?=?Split(TextBox1.Text,?"?")?'初始化數組

i?=?UBound(arr)?-?1?'初始化外層循環的初始值

j?=?0'初始化內層循環的起始值

Timer1.Enabled?=?True'時間控件開始運轉

End?Sub

在Timer1控件內部,我們要做的,就是在Textbox2中,顯示每壹次循環的值,然後對各種變量進行處理,代碼如下:

private?sub?Timer1_Timer()

If?arr(j)?>?arr(j?+?1)?Then?'判斷如果前面的數大於後面的數,那麽交換兩個數,所以最終將使數字升序排列

m?=?arr(j)

arr(j)?=?arr(j?+?1)

arr(j?+?1)?=?m

End?If'冒泡排序的條件語句

n?=?n?+?1'計算循環次數

TextBox2.Text?=?Join(arr,?"?")

TextBox3.Text?=?n

j?=?j?+?1

If?j?=?i?+?1?Then?i?=?i?-?1?:?j?=?0?'內層循環變量j大於i的值,那麽對i值進行處理,進入下壹層循環,初始化i值和j值

End?Sub

妳自己看著改吧,希望能幫到妳!

  • 上一篇:橙光遊戲《夢想的女人》櫻花線夏日線攻略
  • 下一篇:汽車百科(品牌篇)|奧迪
  • copyright 2024編程學習大全網