logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

排序算法——桶排序、计数排序与基数排序(C++)

桶排序基本思想先扫描得到待排序数组中的最大值maxVal与最小值minVal,假设桶的个数为k,则代表则将[minVal, maxVal]均分为k个范围,每个范围中的元素各自放入对应的桶中。如此桶之间必然是有序的,桶内使用排序算法进行排序,最后按序收集所有桶的元素,即完成桶排序;复杂度时间复杂度总的时间复杂度为 O(n)+O(k)O(n/klog(n/k)) = O(n+nlog(n/k))当 k

#算法#排序算法#数据结构
C++11实现基于循环数组的自旋锁队列LockFreeArrayQueue

C++11实现基于循环数组的无锁队列LockFreeArrayQueue 无锁队列实现原理源码测试代码运行结果无锁队列无锁队列一般指的是通过CAS操作来保证队列的线程安全性问题,而不会使得线程陷入到内核,以避免用户态与内核态的切换开销;实现原理本文采用循环数组,实现无锁队列;自旋锁方式,对front/rear自旋为Exclude 表示成功获取自旋锁:1.1. 在push函数中,对rear成功CAS

C++简单实现HashMap

实现说明线程不安全;2倍扩容,方便使用位运算计算桶位置;但存在极端情况下的弊端;不支持将链表转为红黑树源码#pragma once#include<string>//Hash函数int Hash(int key) {return key;}//线程不安全容器//2倍扩容,方便计算//不支持链表转为红黑树class HashMap {class Node {public:const in

#链表
到底了