第1个回答 2013-12-15
#include <stdio.h>// 冒泡排序
/////////////////////////////////////////////////////////////////////
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=1;i<Count;i++)
{
for(int j=Count-1;j>=i;j--)
{
if(pData[j]<pData[j-1])
{
iTemp = pData[j-1];
pData[j-1] = pData[j];
pData[j] = iTemp;
}
}
}
}// 插入排序
/////////////////////////////////////////////////////////////////////
void InsertSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=1;i<Count;i++)
{
iTemp = pData[i];
iPos = i-1;
while((iPos>=0) && (iTemp<pData[iPos]))
{
pData[iPos+1] = pData[iPos];
iPos--;
}
pData[iPos+1] = iTemp;
}
}// 选择排序
/////////////////////////////////////////////////////////////////////
void SelectSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=0;i<Count-1;i++)
{
iTemp = pData[i];
iPos = i;
for(int j=i+1;j<Count;j++)
{
if(pData[j]<iTemp)
{
iTemp = pData[j];
iPos = j;
}
}
pData[iPos] = pData[i];
pData[i] = iTemp;
}
}// 主函数
/////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
int data1[] = {10,9,8,7,6,5,4};
printf("【冒泡排序】\n");
printf(" 排序前:");
for (int i=0;i<7;i++)
printf("%d\t",data1[i]);
printf("\n");
BubbleSort(data1,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data1[i]);
printf("\n\n");
int data2[] = {11,0,8,2,1,4,5};
printf("【插入排序】\n");
printf(" 排序前:");
for (i=0;i<7;i++)
printf("%d\t",data2[i]);
printf("\n");
InsertSort(data2,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data2[i]);
printf("\n\n");
int data3[] = {21,20,11,8,3,4,1};
printf("【选择排序】\n");
printf(" 排序前:");
for (i=0;i<7;i++)
printf("%d\t",data3[i]);
printf("\n");
SelectSort(data3,7);
printf(" 排序后:");
for (i=0;i<7;i++)
printf("%d\t",data3[i]);
printf("\n\n");
getchar();
return 0;
}