例項007陣列排序

2021-10-04 12:48:03 字數 2749 閱讀 7911

控制台程式

module module1

sub main()

dim randomarray(20) as single

dim sortedarray(20) as single

dim rndstring as string

dim rnds as single

dim icount as integer

dim jcount as integer

dim kcount as integer

console.writeline("生成的隨機數列為:")

for icount = 1 to 20

rnds = rnd() * 999 + 1

rndstring = format(rnds, "###0.00")

rnds = csng(rndstring)

randomarray(icount) = rnds

console.write(convert.tostring(randomarray(icount)) & ", ")

next

console.writeline() '換行

console.writeline() '隔斷

'插入排序法

'第乙個數插入到排序陣列中

sortedarray(1) = randomarray(1)

for icount = 2 to 20

'假設新插入的陣列最大,將該數放在排序陣列的最後的位置icount

sortedarray(icount) = randomarray(icount)

'中間結果

'console.writeline("插入前中間結果" & icount)

'for i = 1 to 20

'console.write(convert.tostring(sortedarray(i)) & ", ")

'next

'console.writeline()

'將其它數插入到排序陣列中的適當位置

for jcount = 1 to icount - 1

'如果新插入的數(現在在排序陣列的最後)比原排序陣列中某個數小,則把新數插入到該數前面

if randomarray(icount) < sortedarray(jcount) then

'從插入的位置開始將數字向後移

for kcount = icount - 1 to jcount step -1

sortedarray(kcount + 1) = sortedarray(kcount)

next

sortedarray(jcount) = randomarray(icount)

exit for

end if

next

'中間結果

'console.writeline("插入後中間結果" & icount)

'for i = 1 to 20

'console.write(convert.tostring(sortedarray(i)) & ", ")

'next

'console.writeline()

next '這個演算法是先插入然後比較然後移,然後又插入,用了三層迴圈,好像有點麻煩吧,

console.writeline("方法一:插入排序法")

'console.writeline("排序完成:")

for icount = 1 to 20

console.write(convert.tostring(sortedarray(icount)) & ", ")

next

console.writeline() '換行

console.writeline() '隔斷

console.writeline("方法二:array.sort方法")

array.sort(randomarray)

'console.writeline("排序完成")

for icount = 1 to 20

console.write(randomarray(icount) & ", ")

next

console.writeline()『換行

console.writeline() '隔斷

'改一下撒

dim sortedarray1(20) as single

sortedarray1(1) = randomarray(1)

for icount = 2 to 20

for jcount = 1 to icount

if randomarray(icount) < sortedarray1(jcount) then

sortedarray1(jcount + 1) = sortedarray1(jcount)

end if

sortedarray1(icount) = randomarray(icount)

exit for

next

next '比移插,二層迴圈就夠

console.writeline("方法三:")

'console.writeline("排序完成")

for icount = 1 to 20

console.write(randomarray(icount) & ", ")

next

console.writeline()

console.read()

end sub

end module

007陣列練習

1 自定義函式實現,獲得乙個隨機數組的方法,陣列元素的個數是任意的,元素的取值區間是任意的。2 自定義函式實現 求任意陣列中的元素的最大值。3 自定義函式實現 統計任意陣列中的元素等於某個值的個數。4 自定義函式實現 統計任意陣列中的元素等於某個值的所有的下標。需要返回乙個陣列。param leng...

C 學習筆記(007) 陣列

一 陣列介紹 在單個變數中儲存同一種資料型別的多個資料項的乙個集合。c 的陣列的索引是從零開始的,陣列中的每乙個資料項都可以使用乙個整數索引來進行唯一標識 陣列中最後乙個元素的索引值要比陣列元素的的總數小1。二 陣列的宣告 1.一維陣列 語法 datatype variable 例如 string ...

Java 陣列例項 自動排序

public class numsort print a selectionsort a 為捕獲的資料排序 better 減少資料交換次數。for int i 0 ilength i if k i 之前的演算法是比一次交換一次,這個演算法是比出最小值才交換一次。perfect 減少分配空間次數 in...