vb用氣泡排序法實現對陣列中含有元素隨機

時間 2021-08-30 10:29:00

1樓:匿名使用者

這個要動態演示排序過程麼?還是直接顯示排序的結果?

2樓:

private sub command1_click()dim a(1 to 10) ,i ,j,s as integerrandomize

for i=1 to 10 //隨機10個產生1-100的整數

a(i) = int(rnd * 100) + 1next i

for i=1 to 9

for j=i+1 to 10

if a(i)>a(j) then //如果前面的比後面大,那麼就讓他們交換

s=a(i)

a(i)=a(j)

a(j)=s

end if

next j

next i

for i=1 to 10

print a(i)

next i

end sub

有什麼不明白的,可以追問。

3樓:匿名使用者

dim n(9) as integer

for i = 0 to 9

randomize '初始化

n(i) = rnd * 100 '賦隨機值next i

dim temp as integer '用作改變位置臨時儲存for i = 0 to 8

if n(i) > n(i + 1) then '判斷是否前一位大於後一位

temp = n(i)

n(i) = n(i + 1)

n(i + 1) = temp

i = -1 '為了更準確,讓它重新開始

end if

next i

for i = 0 to 9

print "第" & i + 1 & "位:" & n(i) '輸出

next i

用氣泡排序法對輸入的10個數進行升序排序 並存入陣列中

4樓:莫道無情

c語言程式如下;

#include

#define arr_len 255 /*陣列長度上限*/

#define elemtype int /*元素型別*//* 氣泡排序 */

/* 1. 從當前元素起,向後依次比較每一對相鄰元素,若逆序則交換 */

/* 2. 對所有元素均重複以上步驟,直至最後一個元素 */

/* elemtype arr: 排序目標陣列; int len: 元素個數 */

void bubblesort (elemtype arr, int len)

}} int main (void) ;

int len = 10;

int i;

bubblesort (arr, len);

for (i=0; iprintf ("%d\t", arr[i]);

putchar ('\n');

return 0;

}擴充套件資料:

演算法分析

時間複雜度

若檔案的初始狀態是正序的,一趟掃描即可完成排序。所需的關鍵字比較次數c

和記錄移動次數m均達到最小值:

所以,氣泡排序最好的時間複雜度為o(n)。

若初始檔案是反序的,需要進行n-1趟排序。每趟排序要進行能n-i次關鍵字的比較(1≤i≤n-1),且每次比較都必須移動記錄三次來達到交換記錄位置。在這種情況下,比較和移動次數均達到最大值:

氣泡排序的最壞時間複雜度為o(n^2)。

綜上,因此氣泡排序總的平均時間複雜度為o(n^2)。

5樓:金色潛鳥

#include

main()

}for (i=0;i<10;i++) printf("%g ",x[i]);

return 0;}

6樓:阿亮臉色煞白

#include

void main()

for(j=0;j<10;j++)}}

for(i=0;i<10;i++)

}====

用選擇法對陣列中整數按由小到大排序,程式中呼叫sort

需要理解計算的思路,即所謂演算法,然後就可以理解迴圈的寫法了所謂選擇法,就是在當前陣列中挑選一個最大 或最小的,看你排序順序 的數出來,然後把它與第1個數進行交換,這樣第1個數一定是其後所有數中最大的 如果第1個數搞好了,在從第2個數到所有數結束範圍再算一次,那麼第2個數就會被換成除第1個數外最大的...

c語言用選擇法對陣列中整數按由小到大排序

首先以array 0 作為參照,從左到右掃描,找到最小的資料與array 0 位置交換。接下來以array 1 作為參照,重複上述過程。k i定位參照 k j找到剩下陣列中最小值 k i是為了每次迴圈都從當前項開始呀。k j 不是你說的j k 是為了記錄後面的最小項,以方便替換。 從第i個數開始,比...

C語言 用選擇法對陣列中數按由大到小排序

問明 include using namespace std int main void select sort int arry,int n int a 10 i for i 0 i 9 i cin a i cout for i 0 i 9 i 輸出10個已經排好序的數 cout void sel...