质量保证的目的:选择法 冒泡法 排序
来源:百度文库 编辑:杭州交通信息网 时间:2024/05/04 17:56:34
要求用到C语言
冒泡法实例:
#include<iostream.h>
#include<iomanip.h>
void main()
{
const int arraySize = 10 ;
int a[ arraySize ] = { 2,6,4,8,10,12,89,68,45,37} ;
int i ,hold ;
cout<<"Data items in original order\n" ;
for ( i = 0 ;i<arraySize ; i++)
cout<<setw(4)<<a[i] ;
for(int pass = 0 ;pass <arraySize - 1 ;pass ++)
for( i = 0 ;i< arraySize-1;i++)
{
if(a [i] >a[ i + 1])
{
hold = a[i] ;
a[i] = a[i+1] ;
a[i+1] = hold ;
}
}
cout<<"\nData iteas in ascending order\n";
for( i = 0; i<arraySize ; i++)
{
cout<<setw(4)<<a[i];
}
cout<<endl;
}
简单选择排序
算法:
Smp_Selecpass(ListType &r,int i)
{
k=i;
for(j=i+1;j<n;i++)
if (r[j].key<r[k].key)
k=j;
if (k!=i)
{ t=r[i];r[i]=r[k];r[k]=t;}
}
Smp_Sort(ListType &r)
{
for(i=1;i<n-1;i++)
Smp_Selecpass(r,i);
}
Option Base 1
Option Explicit
'下面的是冒泡排序法
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim a(10) As Integer, k As Integer
For i = 1 To 10
a(i) = CInt(Rnd * (89) + 11)
Print a(i);
Next i
For i = 1 To 9
For j = 1 To 9
If a(j) > a(j + 1) Then
k = a(j)
a(j) = a(j + 1)
a(j + 1) = k
End If
Next j
Next i
Print
For i = 1 To 10
Print a(i);
Next i
Print
Print
End Sub
'下面的是选择排序法
Private Sub Command2_Click()
Dim i As Integer, j As Integer
Dim a(10) As Integer, k As Integer
For i = 1 To 10
a(i) = CInt(Rnd * (89) + 11)
Print a(i);
Next i
For i = 1 To 9
For j = i To 9
If a(i) > a(j + 1) Then
k = a(i)
a(i) = a(j + 1)
a(j + 1) = k
End If
Next j
Next i
Print
For i = 1 To 10
Print a(i);
Next i
Print '空行
Print
End Sub
'下面的是直接排序法
Private Sub Command3_Click()
Dim i As Integer, j As Integer
Dim a(10) As Integer, k As Integer, zz As Integer
For i = 1 To 10
a(i) = CInt(Rnd * (89) + 11)
Print a(i);
Next i
For i = 1 To 9
zz = i
For j = i + 1 To 10
If a(zz) > a(j) Then
zz = j
End If
Next j
If i <> zz Then
k = a(i)
a(i) = a(zz)
a(zz) = k
End If
Next i
Print
For i = 1 To 10
Print a(i);
Next i
Print
Print
End Sub
'下面的是插入排序法
Private Sub Command4_Click()
Dim i As Integer, j As Integer
Dim a(10) As Integer, k As Integer
For i = 1 To 10
a(i) = CInt(Rnd * (89) + 11)
Print a(i);
Next i
Print
For i = 1 To 9
For j = i + 1 To 2 Step -1
If a(j) < a(j - 1) Then
k = a(j)
a(j) = a(j - 1)
a(j - 1) = k
End If
Next j
Next i
Print
For i = 1 To 10
Print a(i);
Next i
End Sub
呵呵,强烈建议你看书,书上说的比我们的强多了。
看着书照搬下来,很容易弄好的
看看数据结构的书,最基本的排序