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...