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++)
}====
冒泡法對陣列排序,用氣泡排序法對一個陣列排序
進行比較的是a j 和a j 1 不是a i 和a i 1 用氣泡排序法對一個陣列排序 20 include define n 15 int main i,j,t 陣列已有n個資料for i 0 ia j 1 若相信的元素大小順序不對,就交換。for i 0 iprintf return 0 關於j...
C 下用氣泡排序法排列數,C 下用氣泡排序法排列10個數
乾珈藍佑 將你的 中 for j 9,q 1 q n k j q 的n改為10就可以了 for j 9,q 1 q 10 k j q 改為10以後,程式就沒有問題了 你的main函式顯示有問題,顯示的aa.display 在排序的aa.sortnum 之前了,那樣顯示的是排序前的順序,在aa.sor...
氣泡排序法是如何排序的
隨便什麼名啦啦 氣泡排序演算法的原理 1 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。2 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3 針對所有的元素重複以上的步驟,除了最後一個。4 持續每次對越來越少的元素重複上面的步驟,直到沒有任...