氣泡 排序
(高顯忠, sjgau4311@gmail.com, 2010-12-22 14:41)
1樓
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
// ----------------------------------------------
using namespace std;
// ----------------------------------------------
// show_data( a, no);
void show_data(int a[], int no)
{
int i;
printf("\n\n\n");
for (i=0;i<no;i++) {
printf("%3d, ", a[i]);
}
printf("\n");
system("pause");
}// end of show_data()
// ----------------------------------------------
// swap_int( &a[j], &a[k]);
void swap_int(int *x, int *y)
{
int temp;
temp= (*x);
(*x)= (*y);
(*y)= temp;
}// end of swap_int()
// ----------------------------------------------
int main(int argc, char *argv[])
{
int no= 10, i, j, k, flag;
// test for bubble sort
int a[100];
srand((unsigned) time(NULL));
// srand(123);
// generate data
for (i=0;i<no;i++) {
a[i]= rand()%100;
}
// ------------------------------------------
// show data
show_data(a, no);
// bubble sort
for (i=0;i<10;i++) {
printf("\n i= %d\n", i);
flag= 0;
for (j=0;j<=((no-1) - 1);j++) {
k= j + 1;
// must a[j] <= a[k]
if (a[j] > a[k]) {
printf("\n swap the data of %d, %d\n", a[j], a[k]);
system("pause");
swap_int(&a[j], &a[k]);
flag= 1;
}
}
show_data(a, no);
if (flag == 0) break;
}
printf("\n\n\n *** end of the sort\n");
system("pause");
// ----------------------------------------------
a[5]= 111;
// check the correct of the data
for (i=0;i<=((no-1) - 1);i++) {
j= i + 1;
// we hope a[i] <= a[j]
if (a[i] > a[j]) {
printf("\n\n\n *** error of a[i]= %d, > a[j]= %d, \n", a[i], a[j]);
system("pause");
}
}
printf("\n\n\n *** end of the check\n");
system("pause");
return EXIT_SUCCESS;
}// end of main()
// ----------------------------------------------