C/C++编程学习 - 第8周 ② 冒泡排序

题目链接

题目描述

冒泡排序是一种常见的排序算法,本题要求用冒泡排序算法对一组正整数进行从小到大排序。

输入的是一行不超过 100 个正整数,就是我们需要排序的数。每个正整数不超过 100。

从小到大输出排序好的数,数之间用空格分开,行尾没有多余的空格。

Sample Input

2 1 5 8 21 12

Sample Output

1 2 5 8 12 21

思路

冒泡排序简单来讲,就是把数组中的数字比作一个一个小气泡,数字大的,气泡就大;数字小的,气泡就小。

我们每次都对数组中的元素进行比较大小,使数值比较大的元素排在数值比较小的元素后面,这就好比大气泡上浮,进行一次遍历之后,最大的那个气泡将会上浮到最后;接着进行第二次遍历,使第二大的气泡上浮到倒数第二个位置,经过 n 次遍历后,数组已然按照从小到大的顺序排好序了。

sort()是排序函数,虽说这道题的题目是冒泡排序,但是这并不影响我们用sort(懒得写冒泡了)。

题目中并没有说明输入多少数,这就需要我们自己计数了。如果有什么没讲明白的,欢迎在评论区提问,我尽可能的补充说明。

C++代码:

#include<bits/stdc++.h>
using namespace std;
int num[105];
int main()
{
    
    
	int n, i = 0;
	while(cin >> n)
		num[i++] = n;
	sort(num, num + i);
	for(int j = 0; j < i; j++)
		if(j == 0) cout << num[j];
		else cout << " " << num[j];
	cout << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_44826711/article/details/113079811
今日推荐