C++一些基本排序方法

本文介绍了C++中常见的五种排序算法:桶排序、选择排序、冒泡排序、插入排序和快速排序。通过实例解释了每种排序方法的基本思想和实现过程,探讨了它们的时间复杂度和适用场景。桶排序利用了分桶策略,快速排序则通过递归和基准元素划分实现高效排序。对于小数据量,选择、冒泡和插入排序虽简单但效率较低,而快速排序在平均情况下表现优秀。
摘要由CSDN通过智能技术生成

声明:本人学信竞半年不到,用的方法很逊,思路也很基本

           希望大佬批评指正

一.桶排序

        举一个非常离谱的例子,你面前有十个按顺序标了1~10的桶,你手上有5个带有序号的小球。现在你要把这些小球按序号放在桶里,你会怎么做?

        你现在拿到了一个编号为1的小球,你把它放在编号为1的桶里,像这样

        

         你拿到了一个编号为7的小球,你又把它放进对应的桶里,像这样

          

         如此往复两次你拿到了两个小球,一个是6号一个是8号,像这样

         

         这时候你又拿到了一个编号为7的球(内心:终于到最后一个了,于是这个图变成了这样

         

         至此你的小球放完了,接下来你又要按编号从小到大的顺序把每个球拿出来,并且还要记录每个球所对应的桶的编号(内心:??

        你从1号里拿出了1个球,从6号里拿出了1个,从7号里拿出了2个,从8号里拿出了1个,整个过程可以可以这么描述

           

        这个时候球的顺序已经按编号排好了,你的事情也干完了(不容易

        其实这个过程就是类比于桶排序。(真正的桶排序比这个难一些,这个是简易版的)它的基本方法就是,开很多很多个桶(就是数组)然后把待排序的数放在对应的数组元素里,比如1放在a[1]里,5放在a[5]里。最后按你需要的顺序输出数组里出现过的下标,整个排序过程结束

        代码如下

#include <bits/stdc++.h>
using namespace std;
const int MAXN=1001;
int a[MAXN];//建立很多的桶 
int n,t;//n为待排序的数的个数 t为待排序的数 
int main()
{
	cin>>n;
	for(int i=1;i<=n;i&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值