分别采用选择排序法和冒泡法排序法对随机产生的10000个0~100之间的整数进行排序

用VB解答。。

第1个回答  2011-01-05
#include<stdlib.h>
#include <iostream.h>
#include<time.h>
void Bubble_Sort(int a[],int n) //冒泡排序
{
bool change=true;
for (int i=n-1;i>=1&&change;--i)
{
change=false;
for (int j=0;j<i;++j)
{
if (a[j]>a[j+1])
{
int tem=a[j];
a[j]=a[j+1];
a[j+1]=tem;
change=true;
}
}
}
}

void Select_Sort(int a[],int n)
{
for (int i=0;i<n;++i)
{
int k,h,tem=101;
for (int j=i;j<n;++j)
{
if (a[j]<tem)
{
tem=a[j];
k=j;
}
}
if (a[i]!=tem)
{
h=a[i];
a[i]=tem;
a[k]=h;
}
}
}
void main()
{
srand(time(0));
int a[10000];
for (int j=0;j<10000;j++)
{
a[j]=rand()%100;
}
/*Bubble_Sort(a,10000);*/
Select_Sort(a,10000);
for (int i=0;i<10000;++i)
{
cout<<a[i]<<endl;
}
}
第2个回答  2011-01-12
1 选择排序
Private Sub Form_Click()
Dim i, j, t, a(10000) As Integer
Randomize
For i = 1 To 10000
a(i) = Int(Rnd() * 100)
Next i
For i = 1 To 9999
For j = i + 1 To 10000
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
For i = 1 To 10000
Print a(i)
Next i
End Sub
2 冒泡排序
Private Sub Form_Click()
Dim i, j, t, a(10000) As Integer
Randomize
For i = 1 To 10000
a(i) = Int(Rnd() * 100)
Next i
For i = 1 To 9999
For j = 1 To 10000 - i
If a(j) > a(j + 1) Then
t = a(j)
a(j) = a(j + 1)
a(j + 1) = t
End If
Next j
Next i
For i = 1 To 10000
Print a(i)
Next i
End Sub本回答被提问者采纳
相似回答