/*
時間:2012年5月18日 20:31:33
功能:冒泡排序。
*/
# include <stdio.h>
//原代碼。修改僞代碼:1. i,j=1改爲i,j=0; 2. data[0] 改爲 int temp 。
/*void BubblesSort(int data[], int len)
{
int i, j, tag;
for(i=0,tag=1; tag==1&&i<len; i++)
{
tag = 0;
for (j=0; j<=len-i;j++)
{
if(data[j] > data[j+1])
{
int temp = data[j];
data[j]=data[j+1];
data[j+1] = temp;
tag = 1;
}
}
}
}*/
//修改
void BubblesSort(int data[], int len)
{
int i, j, tag;
for(i=0; i<len-1; i++)
{
for (j=i+1; j<len;j++)
{
if(data[i] > data[j])
{
int temp = data[i];
data[i]=data[j];
data[j] = temp;
}
}
}
/*
未排序前:
5 7 1 6 44 11 56 33 45 0
排序以後:
0 1 5 6 7 11 33 44 45 56
Press any key to continue
*/
}
// 數組輸出。
void OutPut(int data[], int len)
{
for (int i=0; i<len; i++)
{
printf("%d ", data[i]);
}
printf("\n\n");
}
int main(void)
{
int data[] = {5, 7, 1, 6, 44, 11, 56, 33, 45, 0};
printf("未排序前:\n");
OutPut(data, 10);
BubblesSort(data, 10);
printf("排序以後:\n");
OutPut(data, 10);
return 0;
}
/*
結果:
---------------------------------------
未排序前:
5 7 1 6 44 11 56 33 45 0
排序以後:
0 1 5 6 7 11 33 44 45 56
Press any key to continue
---------------------------------------
*/