首页 > 其他分享 >今日总结

今日总结

时间:2024-10-10 19:44:44浏览次数:10  
标签:总结 arr int buckets ++ 今日 排序 数据

今天了解了桶排序算法
时间复杂度:
平均时间复杂度: O(n + k),其中 n 是数据的数量,k 是桶的数量。
最坏时间复杂度: O(n^2),当所有数据都分配到同一个桶中时。
空间复杂度: O(n + k),需要额外的空间来存储桶和数据。
2. 算法步骤
初始化桶: 根据数据的范围创建一定数量的桶。
分配数据: 将每个数据分配到相应的桶中。
排序桶内的数据: 对每个桶内的数据进行排序(可以使用插入排序、快速排序等)。
合并桶: 将所有桶中的数据按顺序合并,得到有序序列。

include

include

include // For std::sort

// 桶排序函数
void bucketSort(float arr[], int n) {
if (n <= 0) return;

// 1. 创建桶
std::vector<float> buckets[n];

// 2. 将数据分配到桶
for (int i = 0; i < n; ++i) {
    int bucketIndex = static_cast<int>(n * arr[i]);  // 确定桶的位置
    if (bucketIndex >= n) {
        bucketIndex = n - 1;  // 确保索引不会越界
    }
    buckets[bucketIndex].push_back(arr[i]);  // 将元素添加到相应的桶中
}

// 3. 对每个桶内的数据进行排序
for (int i = 0; i < n; ++i) {
    std::sort(buckets[i].begin(), buckets[i].end());
}

// 4. 合并所有桶中的数据
int index = 0;
for (int i = 0; i < n; ++i) {
    for (size_t j = 0; j < buckets[i].size(); ++j) {
        arr[index++] = buckets[i][j]; // 将数据从桶中取出并放入原数组
    }
}

}

int main() {
float arr[] = {0.42, 0.32, 0.33, 0.52, 0.37, 0.47, 0.51};
int n = sizeof(arr) / sizeof(arr[0]);

bucketSort(arr, n);

// 打印排序后的数组
std::cout << "Sorted array: ";
for (int i = 0; i < n; ++i) {
    std::cout << arr[i] << " ";
}
std::cout << std::endl;

return 0;

}

标签:总结,arr,int,buckets,++,今日,排序,数据
From: https://www.cnblogs.com/wjhfree/p/18456995

相关文章

  • Java日总结---多表查询&事务
    多表查询简介:设计员工和部门两个表点击查看代码#创建部门表CREATETABLEdept(didINTPRIMARYKEYAUTO_INCREMENT,dnameVARCHAR(20));#创建员工表CREATETABLEemp(idINTPRIMARYKEYAUTO_INCREMENT,NAMEVARCHAR(10),genderCHAR(1),--性别salaryDOU......
  • Transformer面试总结(一)
    1、Transformer模型的基本结构是什么?他是如何改变深度学习领域的?它的基本结构包括:自注意力机制(Self-Attention):Transformer模型使用自注意力机制来处理输入序列中的每个元素与其他元素之间的关系。这种机制允许模型同时考虑输入序列中的所有元素,而不是仅仅依赖于位置信息。......
  • 申论公文类总结
    公文与应用文体写作要点总结表类型标题格式称呼开头主体结尾是否有落款意见单位+内容+文种有称呼背景目的做法提出要求有落款通知单位+内容+文种有称呼背景目的做法提出要求有落款通告单位+内容+文种无称呼背景目的注意事项,以做......
  • 中秋曼谷四日三晚总结
    消费:10713.58失望 摩托车隆隆的 夜市脏乱差 榴莲味道很淡,有点硬。不算甜,140猪一公斤 按摩300猪一个人一小时 泰奶太一般了 曼谷交通太堵了,打车也要堵很久,坐摩托车太吓人了,速度快,跟轿车抢,我没有头盔 yy拖鞋磨脚,穿上袜子好了 朱拉隆功大学夜市一般 酒店隔音太差了,走廊走动......
  • 2024.10.10 总结
    A:赛时发了什么疯非要来冲这题。不妨计各种颜色的宝石为0/1。考虑记前缀和的最大值为\(S_\max\),最小值为\(S_\min\),于是总的限制为\(|S_\max-S_\min|\leqk\)。考虑反向维护这个限制,即枚举一个\(i\),然后钦定\(i\leqS_\min\leqS_\max\leqi+k\),计算对应的序列个数。然后......
  • C#基础知识总结-快速掌握看这一篇就够了
    C#基础知识总结-快速掌握看这一篇就够了目录一、类库:图书馆,命名空间:书架,类:书籍,方法:目录1、类库的引用2、初识类与名称空间3、依赖关系4、类与对象的关系......
  • 最新版今日头条独家内部玩法,单号轻松简单日入2张
    今日头条作为流行的新闻和内容平台,为内容创作者提供了一个展示和盈利的机会。本文档详细介绍了利用特定工具在今日头条上进行文章创作的流程和优势。项目背景随着移动互联网的普及,越来越多的用户通过手机应用获取信息。今日头条凭借其算法推荐系统,成为用户获取信息的重......
  • 第二十一章 实战青龙流式系统问题总结
    我们在实际的开发过程会遇到很多的问题,这里总结和归纳,可以帮助各位流式协议带来的限制媒体流属性的随机化处理RTC协议要求接收方在接收到媒体流后复写mediatrack上的id,label,contentHint等属性以保证流属性不会泄漏发送者的媒体设备信息,并使流在P2P网络中唯一.这......
  • 10.9日牛客CSP-S考试总结
    10.9日牛客CSP-S考试总结T1考场上大概看了一个多小时,想了一个部分分的做法,结果变界判断错误,导致puts("-1");的分也没拿到。T2大部分时间在做这题,想了一个搜索的做法,每次枚举从哪个时刻出发,取了一个较为合适的范围,又加了一个类似于spfa容错的优化。但是因为范围开小就会导致正......
  • 2024/10/09 模拟赛总结
    \(100+40+20+8=168\),拿到了大众分,至少没挂分吧#A.矩阵交换一个\(m\)维偏序,可以使用\(m-1\)维树状数组解决以第\(i\)作为第\(i\)关键字,进行排序,这样一定最优。排完之后直接判断是否满足条件即可//BLuemoon_#include<bits/stdc++.h>usingnamespacestd;consti......