算法导论第八章伪码转C++ __桶排序
来源:互联网 发布:橘子说淘宝装修工具箱 编辑:程序博客网 时间:2024/06/10 02:33
#include<iostream>
#include<list>
using namespace std;
void ShowArray(double A[],int n)
{
cout << "result is :" << endl;
for (int i = 0; i < n ; i++)
cout << A[i] << " ";
cout << endl;
}
void BucketSort(double A[],int n)
{
//P112 , 默认输入范围[0,1) ,对于大数很简单,可以把其除以10的几倍啊哈哈
//桶排序关键是针对分布均匀的n个数,所以建n个桶,这样高效,每个一个完成就是O(n)了
//这是用STL做的,边查边做的,居然success了
list<double> B[n]; //定义n个链表
for(int i = 0; i < n ; i++)
B[(int)(n * A[i])].push_back(A[i]); //增加一个元素到链表后面
for(int i = 0; i < n; i++)
B[i].sort(); //默认升序
int j =0;
int m = 0;
while (j < n && m < n)
{
while(0 != B[m].size())
{
A[j++] = B[m].front();//返回第一个元素, ++那样写,秀一把
B[m].pop_front(); //删除第一个元素
}
m++;
}
}
int main()
{
double A[10] = {0.78,0.17,0.39,0.26,0.72,0.94,0.21,0.12,0.23,0.68};
BucketSort(A,10);
ShowArray(A,10);
}
#include<list>
using namespace std;
void ShowArray(double A[],int n)
{
cout << "result is :" << endl;
for (int i = 0; i < n ; i++)
cout << A[i] << " ";
cout << endl;
}
void BucketSort(double A[],int n)
{
//P112 , 默认输入范围[0,1) ,对于大数很简单,可以把其除以10的几倍啊哈哈
//桶排序关键是针对分布均匀的n个数,所以建n个桶,这样高效,每个一个完成就是O(n)了
//这是用STL做的,边查边做的,居然success了
list<double> B[n]; //定义n个链表
for(int i = 0; i < n ; i++)
B[(int)(n * A[i])].push_back(A[i]); //增加一个元素到链表后面
for(int i = 0; i < n; i++)
B[i].sort(); //默认升序
int j =0;
int m = 0;
while (j < n && m < n)
{
while(0 != B[m].size())
{
A[j++] = B[m].front();//返回第一个元素, ++那样写,秀一把
B[m].pop_front(); //删除第一个元素
}
m++;
}
}
int main()
{
double A[10] = {0.78,0.17,0.39,0.26,0.72,0.94,0.21,0.12,0.23,0.68};
BucketSort(A,10);
ShowArray(A,10);
}
0 0
- 算法导论第八章伪码转C++ __桶排序
- 算法导论第七章伪码转C++__快速排序
- 算法导论第八章__实现计数排序
- 算法导论第八章伪码转C++_计数排序
- 【算法导论】第八章之桶排序
- 算法导论第八章伪码转C++_基数排序
- 堆排序__算法导论实现
- 算法导论第八章计数排序-基数排序-桶排序-c++
- 算法导论: 第八章 线性时间排序
- 算法导论第八章:线性时间排序
- 算法导论第八章—计数排序
- 【算法导论】第八章之计数排序
- [算法导论]第八章《线性时间排序》
- 算法导论 第八章:线性时间排序
- 算法导论第八章 -- 计数排序
- 算法导论 第八章 线性时间排序
- 算法导论-第八章-计数排序
- 算法导论-第八章-计数排序
- XDCTF coding200
- Android NDK开发入门
- 初步了解C++命名空间(加了继承)
- Sort List[leetcode] 由归并排序的递归和循环,到本题的两种解法
- 嵌入式 修改u-boot与Linux调试串口以及文件系统显示终端串口
- 算法导论第八章伪码转C++ __桶排序
- [2-SAT] poj 3678 Katu Puzzle
- EM 算法复述
- mysql在渗透中的技巧总结
- css基础认识一
- c语言实现面向对象编程
- zoj 3641 Information Sharing(set+并查集)
- C++ Primer学习笔记8 数组和指针
- 怎样避免频繁的Ajax提交