今日闲来无事,写个C++排序
首先,我们要知道排序方法多种多样,是列举不完的,因此这里写几个常用方法:自带函数,选择,插入,冒泡
2021.11.10:添加快排
2021.11.11:添加归并
一、其实C++自带一个排序函数:sort,头文件为algorithm,sort用法此处不做详解
二、选择排序
三、插入排序
四、冒泡排序
五、快速排序
六、归并排序
1.sort写法:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
#define n 10//这里就是要排序元素个数
int a[n];
int main(void){
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
for(int i=0;i<n;i++)
printf("%d ",a[i]);
}
这个看上去是很简单,但是不是这篇文章主要目的,所以简单带过
1.选择排序:
有n个元素需要排序,我们先找到其中最小的,然后放到第一个的位置,再找到第二小的,放到第二个位置,即找到第n小的放到第n个位置。
我们可以只开一个数组然后将不同的数进行交换,也可以开两个相同大小的数组,一个放置未排序的数,然后每次找到这个数组的最小数,依次放到另一个数组,第一个数组每找到一个最小数,就将这个数清0,防止重复
下面讲解开多开一个数组的情况
#include<iostream>
#include<cstdio>
using namespace std;
const int N = 2e5 + 10;
int a[N],b[N];//a放置原数组,因为是全局变量,b自动初始化0
void s_sort(int n){
for(int i=0;i<n;i++){//每次循环将a中的元素存放一个到b
int ju;
for(int j=0;j<