首页 > 编程知识 正文

桶点分布图,java字符串排序

时间:2023-05-03 07:56:06 阅读:141721 作者:3024

桶排序是一种排序方式,实现方式有计数排序和基数排序两种,泡泡排序、选择排序、插入排序、合并排序、快速排序和堆叠排序都是基于比较的排序,而桶排序是基于数据的排序

1 .桶排序思想

)1)获得无序排列的取值范围

)2)基于取值范围)创建(对应数量的)桶)

)3)遍历数组,将各元素放入对应的“桶”中

)4)按顺序遍历铲斗内的各要素,依次配置到数组中,从而完成数组的分类。

桶是可以在各种数据结构(如数组、队列或堆栈)中实现的容器。

2 .复杂性

时间复杂度:遍历数组求最大值的最小值为o[n],遍历数组放入“存储桶”的复杂度为o[n],遍历存储桶获取各值的复杂度为o[n],最终的时间复杂度为O(3n ),两个

空间的复杂性:额外的空间取决于要素的取值范围,总的来说是o(n )

稳定性:“水桶”以什么样的数据结构实现决定了水桶排序是否稳定。 对于队列,可以保证相同元素在“取出”后的相对位置与“放入”前相同。 这意味着排序会很稳定,但在堆栈中实现“桶”时,排序一定会不稳定。 桶排序是稳定的排序算法,因为桶排序是稳定的

3 .桶排序实现的计数排序

(1)计数排序图标的流程

找到无序数组的最大值,创建最大值为1的空数组

遍历原始数组,计算每个元素的出现次数

遍历“存储桶”,即用于统计元素数量的数组,以获得有序数组

)2)计数排序Java代码的实现

publicstaticvoidbucketsort (int [ ] arr ) {

if (arr==空||arr.length2) {

返回;

}

int max=Integer.MIN_VALUE;

for(intI=0; i arr.length; I ) {

max=math.max(max,arr[i] );

}

int[] bucket=new int[max 1];

for(intI=0; i arr.length; I ) {

bucket[arr[i]];

}

int i=0;

for(intj=0; j bucket.length; j ) {

wile(bucket[j]--0) {

arr[i ]=j;

}

}

}

4 .桶排序实现的基数排序(等待更新) ) ) ) ) ) ) ) ) )。

(1)基数排序图标的流程

)2)基数排序Java代码的实现

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。