排序 ——冒泡排序

/*
時間: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
---------------------------------------
*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章