做欧洲电商看哪个网站,石家庄权威发布,一键生成app制作器免费版,wordpress社交媒体插件冒泡排序#xff0c;将一个列表中的两个元素进行比较#xff0c;并将最小的元素交换到顶部。两个元素中较小的会冒到顶部#xff0c;而较大的会沉到底部#xff0c;该过程将被重复执行#xff0c;直到所有元素都被排序。 输入格式:
输入在第1行中给出N#xff08;1N…冒泡排序将一个列表中的两个元素进行比较并将最小的元素交换到顶部。两个元素中较小的会冒到顶部而较大的会沉到底部该过程将被重复执行直到所有元素都被排序。 输入格式:
输入在第1行中给出N1N≤100在第2行中给出N个待排序的整数数字间以空格分隔并保证数字没有重复的出现。
输出格式:
给出冒泡排序每一遍后的中间结果数列数字间以空格分隔但末尾不得有多余空格。注意当排序完成时应立即停止。
输入样例1:
7
4 5 7 6 3 2 1输出样例1:
4 5 6 3 2 1 7
4 5 3 2 1 6 7
4 3 2 1 5 6 7
3 2 1 4 5 6 7
2 1 3 4 5 6 7
1 2 3 4 5 6 7输入样例2:
6
1 2 3 6 5 4输出样例2:
1 2 3 5 4 6
1 2 3 4 5 6代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C程序如下
#include stdio.hvoid show(int a[], int size);//定义一个用于输出数值的函数
void select(int a[], int size);//定义一个用于排序的函数int main(void)
{int size;scanf(%d, size);int a[size];//定义一个长度为size的数组for(int i 0; i size; i){scanf(%d, a[i]);//输入size个数}select(a,size);//对这组数进行排序return 0;
}void select(int a[], int size)//定义一个用于排序的函数
{for(int i 1; i size - 1; i)//外循环size-1次第一次循环将最大的数排在最右边第二次将第二大的排在倒数第二以此类推{int flag 0;//定义一个标志for(int j 0; j size - i; j)//内循环找到前size-i中的最大数{if(a[j] a[j 1])//比较a[j]与其后一个数的大小{int temp a[j];//交换较大数位置a[j] a[j 1];a[j 1] temp;flag 1;//如果交换了位置就让flag1}}if(flag 0){break;}show(a, size);//输出每一下交换位置后的值}
}void show(int a[], int size)//输出每一次交换后的数值
{printf(%d, a[0]);for(int i 1; i size; i){printf( %d, a[i]);}printf(\n);
}