C++桶排序
#include "stdafx.h"
#include<cmath>
#include<iostream>
using namespace std;
struct Node //结构体
{
double value;
Node *next;
};
int _tmain(int argc, _TCHAR* argv[])
{
Node key[10];
int i;
for(i=0;i<10;i++)
{
key[i].value = 0;
key[i].next = NULL;
}
cout<<"请输入排序案例个数:"<<endl;
int cases;
cin>>cases;
Node *p,*q;
while(cases--)
{
cout<<"请输入排序的元素(大于等于0小于1)(以-1结束):"<<endl;
double number;
cin>>number;
while(abs(number-(-1))>0.0000001) //输入需排序的元素,并建立对应的桶的链表,每个桶内采用插入排序
{
Node *nodes = new Node() ;
nodes->value = number;
nodes->next = NULL;
int n = (int)(number*10);
if(key[n].next==NULL)
{
key[n].next = nodes;
nodes->next = NULL;
}
else
{
p = &key[n];
q = key[n].next;
while(q!=NULL&&q->value<=number)
{
q=q->next;
p=p->next;
}
nodes->next = q;
p->next = nodes;
}
cin>>number;
}
cout<<"排序之后:"<<endl;//输出排序后的元素
for(i=0;i<10;i++)
{
p = key[i].next;
if(p==NULL)
continue;
while(p!=NULL)
{
cout<<p->value<< " ";
p=p->next;
}
}
cout<<endl;
for(i=0;i<10;i++) //用delete回收new创建的空间
{
p = key[i].next;
if(p==NULL)
continue;
while(p!=NULL)
{
q = p->next;
delete p;
p=q;
}
}
}
system("pause");
return 0;
}
分享到:
相关推荐
c++桶排序分类.cpp
c++ 桶排序&字符串 干货
主要介绍了C++桶排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
c++桶排序的代码,当初我学排序的时候也用了一些时间才想通,所以,如果一时想不通的话也别放弃,要一直坚持下去。
比较清楚的代码实现,看过按照算法导论的模块写的。
本文件是桶排序的算法,可以进行进行大数据的排序,最大到2亿多。
在排序元素很多的情况下,其实桶排序的性能并不是太高,这里我们配合单链表的直接插入排序,来看下一大数据情况下桶排序算法的运用与C++代码实现示例:
本算法通过桶排序对一个随机数组进行排序,编程语言:C++。
自己实现的各种排序算法,多多指教,包括归并、插入、冒泡 、希尔、快速、桶排序。
经典的桶排序算法实现,在vs2008上调试通过。 算法介绍: 假定:输入是由一个随机过程产生的[0, 1)区间上均匀分布的实数基本思想将区间[0, 1)划分为n个大小相等的子区间(桶),每桶大小1/n:[0, 1/n), [1/n, 2/n)...
桶排序即是先把每个桶中的元素进行排序然后遍历桶依次列出元素的算法,桶排序在元素较少的情况下很高效,以下我们就来详解桶排序算法的思路及C++编程中的代码实现:
数组应用之桶排序课件,用于信息学奥赛基础算法上课应用。课件内容讲解了桶排序的基本思想,问题应用,知识扩展及多维桶等。
C语言100个算法经典例题,免费共享,需要的就下吧
几年前写的,不排除算法生锈的可能性,如有任何问题发信息给我。
自己用C++写的桶式排序算法,是数据结构的一个作业题。。。
桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种...
桶排序是将要排序的算法按桶分组排序之后再遍历汇总的一种线性排序算法,下面就让我们来通过小例子简单掌握桶排序算法及C++版的代码实现^^
算法导论之基数排序,桶排序。基数排序是利用在各个位上进行计数排序,是一种线性排序
桶排序 C/C++ 非原創 參考網路 pthread平行化計算 上課用個人筆記