您的位置:首页 > 其它

整数数组的冒泡排序(从小到大)

2017-01-14 02:06 162 查看
整数数组的冒泡排序(从小到大)

//auther:yangyang
// main.c
//说明,输入十个数,每输入一个空格顿开,回车结束
#include "stdafx.h"
#define N 10//输入10个数字
int min(int a, int b);
int max(int a, int b);
int main()
{
//int a
= { 10,9,8,7,6,5,4,3,2,1 };
int flag = N;
//指针的方法
int a
= { 0 };
int *p = a;
for (int i = 0; i < N; i++)
{
scanf_s("%d", p);
p++;
}
p = &a[0];
for (int i = 0; i < N; i++)
{
printf("输入的数为%d\n", *p++);
}
p = a;
while (1)
{
for (int i = 0; i < flag - 1; i++)
{
int tmp1 = *(p+i);
int tmp2 = *(p+i+1);
*(p + i) = min(tmp1, tmp2);
*(p + i + 1) = max(tmp1, tmp2);
}
if (flag == 2)break;
flag--;
}
p = a;
for (int i = 0; i < N; i++)
{
printf("%d ", *(p+i));
}
//也可以用数组的方法进行排序
/*while (1)
{
for (int i = 0; i < flag - 1; i++)
{
int tmp1 = a[i];
int tmp2 = a[i + 1];
a[i + 1] = max(tmp1, tmp2);
a[i] = min(tmp1, tmp2);
}

if (flag == 2)break;
flag--;
}
for (int i = 0; i < N; i++)
{
printf("%d ", a[i]);
}*/

return 0;
}
int max(int a, int b)
{
return a > b ? a : b;
}
int min(int a, int b)
{
return a < b ? a : b;
}


结果如图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  冒泡排序
相关文章推荐