sort.c(用C語言實現排序的實例)

/*
 *文件:sort.c
 *描述:舉例使用選擇排序和冒泡排序法
 */


#include <stdio.h>






/*
 *函數:SelectSort()
 *說明:實現數組元素的簡單選擇排序,參數爲數組及元素個數
 *     返回值爲空
 */


void SelectSort(int r[],int n)
{
int i,j,min;
int temp = 0; //定義臨時變量用於交換
for(i = 0;i < n-1;i ++) // 共需要n-1次的排序
{
min = i;
for(j = i+1;j < n;j ++)
{
if(r[j] < r[min])
{
min = j; // min爲最小元素的下標
}
//按從小到大的順序進行排序
if(min != i)
{
temp = r[min];
r[min] = r[i];
r[i] = temp;
}
}


}
}






/*
 *函數:BubleSort()
 *說明:實現數組元素的冒泡排序,參數爲數組及元素個數
 *     返回值爲空
 */


void BubleSort(int r[],int n)
{
int i,j;
int temp = 0; //定義臨時變量用於交換
for(i = 0;i < n-1;i ++)
{
for(j = 0;j < n-i-1;j ++)
{
//按從小到大的順序進行排序
if(r[j] > r[j+1])
{
temp = r[j];
r[j] = r[j+1];
r[j+1] = temp;
}
}


}
}






/*
 *函數:display()
 *說明:打印數組元素
 */


void display(int r[],int n)
{
int i;
for(i = 0;i < n;i ++)
{
printf("%d ",r[i]);
}
printf("\n");


}




/*
 *函數:main()
 *說明:
 */




int main()
{
int a[5] = {3,6,21,8,1};
int b[5] = {3,124,657,1,67};
SelectSort(a,5);
display(a,5);


BubleSort(b,5);
display(b,5);


return 0;

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章