您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页【c++】桶排序

【c++】桶排序

来源:叨叨游戏网

文章目录

  • 1.桶排序的含义与理解
  • 2.代码实现

一、桶排序的含义与理解

桶排序:工作的原理是将数组分到有限数量的桶子里,然后在依次拿出来,使得数组中的数变得有序。

二、代码实现

include<iostring>
using namespace std;

const int MAX = 10001;
int arr[MAX];
int main() {
	int n, t;
	cin >> n;
	for (int i = 0; i <n; i++)
	{
		cin >> t;
		arr[t]++;
	}
	for (int i = 1; i <= 10; i++)
	{
		while (arr[i] > 0) {
			cout << i << "\t";
			arr[i]--;
		}
	}
	cin.get();
	cin.get();
	cin.get();
}

首先,第一个for循环作用是将数字放到“桶”中,arr[t]++的含义便是将相同的数放到桶一个"桶"中,然后用一个for循环再将从1到10数字“倒出来”,注意while循环在这里的条件需要让arr[i]大于0,原因是你一个“桶”放入多少个数就最多只能倒出多少个数。其实桶循环的实现还是比较简单的,主要是需要理解这里的arr[t]++和arr[i]--的含义。

桶循环的时间复杂度为o(n),空间复杂度为o(n),桶循环需要使用到额外更多的空间,而它的时间复杂度就相对用得更少,桶循环一般使用在排序的数较小和有限时,不然会用到太多空间。


因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务