/********冒泡排序******/
int main(void)
{
int a[100];
int i = 0, j=0,temp=0;
int n=10;/*比较元素个数*/
printf("Input a[10]:\n");
for (i = 0; i < n; i++)
scanf("%d ", &a[i]);
for(i=0;i<(n-1);i++) /*比较趟数为n-1*/
for (j = 0; j < (n - i-1); j++) /*每趟比较次数为n-"趟数"*/
{
printf("Tang shu =%d Ci Shu=%d \n", i + 1, j + 1);
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
system("PAUSE");
return C_SYS_OK;
}
/*******直接插入排序******/
int main(void)
{
int a[100];
int i = 0, j=0,temp=0;
int n=10;/*比较元素个数*/
printf("Input a[10]:\n");
for (i = 0; i < n; i++)
scanf("%d ", &a[i]);
for(i=1;i<n;i++)/*从数组中第二个元素开始逐个检查大小往里边插入*/
{
temp=a[i]; /*每次插入的数字*/
j=i-1; /*从尾部往前开始比较*/
while(temp<a[j])
{
a[j+1]=a[j];
j--;
if (j < 0) /*避免j为负数*/
break;
}
a[j+1]=temp;
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
system("PAUSE");
return C_SYS_OK;
}
/*******选择排序******/
int main(void)
{
int a[100];
int i = 0, j=0,temp=0;
int n=10;/*比较元素个数*/
printf("Input a[10]:\n");
for (i = 0; i < n; i++)
scanf("%d ", &a[i]);
for(i=0; i<n-1; i++) /*第一趟确认最小值,第二趟确认第二小值*/
for(j=i+1; j<n; j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
system("PAUSE");
return C_SYS_OK;
}