目录
思路
这两类加上选择排序,即为3种最基础的排序方式。
#1014冒泡排序
题目
题目描述
编程实现冒泡排序,按照非递减排序,测试数据为整数。
输入
第一行是待排序数据元素的个数;
第二行是待排序的数据元素。
输出
第一行输出第一趟冒泡排序的结果。
样例输入
10 50 36 41 19 23 4 20 18 12 22样例输出
36 41 19 23 4 20 18 12 22 50
冒泡排序动图
代码
#include <bits/stdc++.h>
using namespace std;
int a[10001];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
if(a[i]>a[i+1]){
swap(a[i],a[i+1]);
}
}
for(int i=1;i<n;i++){
cout<<a[i]<<" ";
}
cout<<a[n]<<endl;
return 0;
}
#1016插入排序
题目
题目描述
插入排序算法实现。
输入
第一行是待排序数据元素的个数;
第二行是待排序的数据元素。
输出
一趟直接插入排序算法结果。
样例输入
10 50 36 41 19 23 4 20 18 12 22样例输出
36 50 41 19 23 4 20 18 12 22
插入排序动图
代码
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
typedef long long ll;
using namespace std;
int a[100005];
int main() {
int n;cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
if(a[1]>a[2]) swap(a[1],a[2]);
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
return 0;
}