题目描述
​ 给出n个同学的身高,请根据他们的身高序升序排列并输出排序结果。

输入
​ 第一行1个正整数n​,表示有n​个同学的身高,2<n≤100​。

​ 第二行包含n个正整数,之间用一个空格隔开,表示n个同学的身高。每个同学的身高都在150~200厘米之间。

输出
​ 一行n个正整数,之间用一个空格隔开,表示n个同学根据身高升序排列的结果。

样例输入
7
180 170 176 160 155 150 160
样例输出
150 155 160 160 170 176 180
数据规模与约定
​ 时间限制:1 s

​ 内存限制:256 M

​ 100% 的数据保证 2<n≤100
插入排序

#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	int num[105] = { 0 };
	for (int i = 1; i <= n; i++) {
		cin >> num[i];
	}
	for (int i = 2; i <= n; i++) {
		int t = num[i];
		int j = 1;
		while (num[j] <= t) j++;
		for (int k= i -1; k>=j; k--) {
			num[k + 1] = num[k];
		}
		num[j] = t;
	}
	for (int i = 1; i <= n; i++) {
		if (i != 1) cout << " ";
		cout << num[i];
	}
	return 0;
}

冒泡排序

#include <iostream>
using namespace std;

#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	int num[105] = { 0 };
	for (int i = 1; i <= n; i++) {
		cin >> num[i];
	}
	for (int i = 1; i <= n; i++) {
		for (int j = i; j <= n; j++) {
			if (num[j] < num[i]) {
				swap(num[i], num[j]);
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		if (i != 1) cout << " ";
		cout << num[i];
	}
	return 0;
}

选择排序

#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	int num[105] = { 0 };
	for (int i = 1; i <= n; i++) {
		cin >> num[i];
	}
	for (int i = 1; i <= n; i++) {
		int t = i;
		for (int j = i; j <= n; j++) {
			if (num[j] < num[t]) {
				t = j;
			}
		}
		swap(num[t], num[i]);
	}
	for (int i = 1; i <= n; i++) {
		if (i != 1) cout << " ";
		cout << num[i];
	}
	return 0;
}
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐