💐The Begin💐点点关注,收藏不迷路💐
|
直接插入排序。
输入
输入n个整数,中间用空格分隔。
输出
输出排序后的数据,每个整数后跟一个空格。
样例输入
5 1 3 6 10
样例输出
1 3 5 6 10
C语言版本
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 10000001
int main() {
int arr[MAX_LEN]; // arr:用于存储输入整数的数组,假设最多输入MAX_LEN个整数
int num_count; // num_count:实际输入整数的个数
num_count = 0;
// 读取输入的整数,直到遇到换行符或达到数组最大长度
while (num_count < MAX_LEN && scanf("%d", &arr[num_count]) == 1) {
num_count++; // 每成功读取一个整数,个数加一
}
// 冒泡排序算法对数组进行排序
for (int i = 0; i < num_count - 1; i++) {
for (int j = 0; j < num_count - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp; // 交换相邻两个元素,使较大的元素往后移
}
}
}
// 输出排序后的数组
for (int i = 0; i < num_count; i++) {
printf("%d ", arr[i]); // 输出每个整数,后面跟一个空格
}
printf("\n");
return 0;
}
C++ 版本
#include <iostream>
#include <vector>
int main() {
std::vector<int> num_vec; // num_vec:用于存储输入整数的动态数组
int num; // num:临时变量,用于存储每次读取的整数
// 读取输入的整数,直到遇到换行符(通过判断输入流状态)
while (std::cin >> num) {
num_vec.push_back(num); // 将读取的整数添加到动态数组中
}
int num_count = num_vec.size(); // num_count:实际输入整数的个数
// 冒泡排序算法对数组进行排序
for (int i = 0; i < num_count - 1; i++) {
for (int j = 0; j < num_count - i - 1; j++) {
if (num_vec[j] > num_vec[j + 1]) {
int temp = num_vec[j];
num_vec[j] = num_vec[j + 1];
num_vec[j + 1] = temp; // 交换相邻两个元素,使较大的元素往后移
}
}
}
// 输出排序后的数组
for (int i = 0; i < num_count; i++) {
std::cout << num_vec[i] << " "; // 输出每个整数,后面跟一个空格
}
std::cout << std::endl;
return 0;
}
Java版本
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numList = new ArrayList<>(); // numList:用于存储输入整数的动态列表
Scanner scanner = new Scanner(System.in);
int num; // num:临时变量,用于存储每次读取的整数
// 读取输入的整数,直到遇到换行符(通过判断输入流状态)
while (scanner.hasNextInt()) {
num = scanner.nextInt();
numList.add(num); // 将读取的整数添加到动态列表中
}
int num_count = numList.size(); // num_count:实际输入整数的个数
// 冒泡排序算法对列表进行排序
for (int i = 0; i < num_count - 1; i++) {
for (int j = 0; j < num_count - i - 1; j++) {
if (numList.get(j) > numList.get(j + 1)) {
int temp = numList.get(j);
numList.set(j, numList.get(j + 1));
numList.set(j + 1, temp); // 交换相邻两个元素,使较大的元素往后移
}
}
}
// 输出排序后的列表
for (int i = 0; i < num_count; i++) {
System.out.print(numList.get(i) + " "); // 输出每个整数,后面跟一个空格
}
System.out.println();
scanner.close();
}
}
Python版本
nums = [] # nums:用于存储输入整数的列表
# 读取输入的整数,直到遇到换行符(通过异常处理来判断输入结束)
try:
while True:
num = int(input())
nums.append(num)
except:
pass
num_count = len(nums) # num_count:实际输入整数的个数
# 冒泡排序算法对列表进行排序
for i in range(num_count - 1):
for j in range(0, num_count - i - 1):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j] # 交换相邻两个元素,使较大的元素往后移
# 输出排序后的列表
for num in nums:
print(num, end=" ")
print()
💐The End💐点点关注,收藏不迷路💐
|