随意给出一个数组,然后将n个数组元素 从小到大排列出来。
思路:
1.第一轮比较,第一个数和n-1个数进行比较,与2~n;
2.第二轮比较,第二个数和n-2个数比较,与3~n;
3.第三轮比较,第三个数和n-3个数比较,与4~n;
.。
。
。
。
得出结论每轮比较的次数和第几轮有关系,及第i轮比较的次数=(n-i );
这里采用双层循环,外层控制轮数,内层控制次数
最后将最小的元素放在前面 。
#include<stdio.h>
#include<stdlib.h>
void swap(intpa,intpb);//用来交换数值,把小的放前面
void maopao(int a[],int n);//冒泡函数比较大小并进行重新排序
int main(void)
{
printf(“输入数组元素个数\n”);
int n;
scanf("%d",&n);
int a;
a=(int)malloc(n*sizeof(int));
printf(“输入数组元素: \n”);
for(int i=0;i<n;i++)
{
scanf(" %d",&a[i]);
}
maopao(a,n);
printf("排序后的数组: \n");
for(i=0;i<n;i++)
{
printf(" %d",a[i]);
}