不知道,你要C还是C++,用C编了一个
从小到大冒泡排序?不是太明白
冒泡从前向后冒泡,排序成从小到大的顺序(我的理解)
#include
void sinput(int *p, int n);
void sorder(int *p, int n);
void display(int *p, int n);
int
main(int argc, char **agrv)
{
int a[10];
sinput(a, 10);
display(a, 10);
sorder(a, 10);
display(a, 10);
return 0;
}
void sinput(int *p, int n)
{
int i;
printf("请输入10个整数\n");
for (i = 0; i < n; i++)
scanf("%d", p++);
}
void sorder(int *p, int n)
{
int i;
int j;
for (i = n - 1; i >= 0; i--)
for (j = 0; j < i; j++)
{
if (p[j] > p[j + 1])
{
p[j] = p[j] ^ p[j + 1];
p[j + 1] = p[j] ^ p[j + 1];
p[j] = p[j] ^ p[j + 1];
}
}
}
void display(int *p, int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", *p++);
printf("\n");
}
验证如下:(不贴图了)
请输入10个整数
9 -1 3 -2 0 11 8 5 -5 1
9 -1 3 -2 0 11 8 5 -5 1
-5 -2 -1 0 1 3 5 8 9 11
Press any key to continue