,,详解C++ 桶排序(BucketSort)

,,详解C++ 桶排序(BucketSort)

本文主要介绍C桶排序,通过示例代码非常详细的介绍,对大家的学习或者工作有一定的参考价值。有需要的朋友下面和边肖一起学习。

一.想法

就是把区间[0,1]分成n个等长的子区间。然后将每个元素按照自己的区间放入对应的桶中,只需要将每个桶中的元素按顺序排列,依次输出每个桶中的元素,得到一个有序的元素序列。

二、实施方案:

#包括iostream

使用命名空间std

const int offset=105//是桶的边界。

const int maxSize=100//数组的最大存储范围

//桶排序

模板类型名T

void BucketSort(T arr[],int n);

//输出数组

模板类型名T

void Print(T arr[],int n);

int main(int argc,const char * argv[]) {

int n,I,arr[maxSize];

Cout '请输入要排序的数字个数:';

CIN n;

srand((int)time(NULL));//将时间设置为一个随机点

for(I=0;I n;I) //生成N个随机数

arr[I]=rand()% 100;

排序前的“Cout”:

Print(arr,n);

BucketSort(arr,n);//调用存储桶排序

排序后为“STD:cout”;

Print(arr,n);

返回0;

}

模板类型名T

void BucketSort(T arr[],int n) {

int i,j;

t桶[偏移量];

for(I=0;我抵消;I) //清除

桶[I]=0;

//1.计数并将数组arr中的元素放入桶中

for(I=0;I n;我)

buckets[arr[I]];//将arr[i]的值对应到buckets数组的下标,每个值加1。

//2.分类

for(i=0,j=0;我抵消;i ) {

While(buckets[i] 0) {//表示有元素,同一个整数,要重复输出。

arr[j]=I;

桶[I]-;

j;

}

}

}

//输出数组

模板类型名T

void Print(T arr[],int n) {

int I;

for(I=0;I n;我)

cout arr[I]' ';

cout endl

}

测试结果:

以上是边肖介绍的C桶排序的详细讲解和集成。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • vs2015打包安装程序,vs2015程序打包,VS2022实现VC++打包生成安装文件图文详细历程
  • vc++6.0的快捷键,vc 快捷键
  • vc++6.0的快捷键,vc 快捷键,VC6.0常用快捷键大全
  • 绘制圆角矩形的方法,c++ 画矩形,C#画圆角矩形的方法
  • 懒汉式和饿汉式代码,单列模式懒汉和饿汉,C++单例模式的懒汉模式和饿汉模式详解
  • 好用的C++编译器,c++编译软件哪个好
  • semaphore c#,c++ semaphore
  • semaphore c#,c++ semaphore,C++中Semaphore内核对象用法实例
  • dev-c++使用教程,dev c++安装教程
  • dev-c++使用教程,dev c++安装教程,Dev C++ 安装及使用方法(图文教程)
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针,简单总结C++中指针常量与常量指针的区别
  • com组件初始化失败,c#开发com组件,C++中COM组件初始化方法实例分析
  • c++静态成员变量使用,c++静态成员函数和静态成员变量
  • c++静态成员变量使用,c++静态成员函数和静态成员变量,详解c++ 静态成员变量
  • 留言与评论(共有 条评论)
       
    验证码: