亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? 清華文件 考研用. Distribution of this memo is unlimite
?? CPP
字號:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
/*
	類名稱:Node
	類功能:將輸入的string以node形式組織起來,便于在LSD時進行分和收的操作
	與其它類的繼承和調用關系:無
*/
class Node{
public:
	string key;		//輸入的英文單詞
	int next;		//指向排序后該單詞的后一個單詞在數組的位置
};
/*
	類名稱:StaticQueue
	類功能:定義出在收集時每個桶的數據結構
	與其它類的繼承和調用關系:無
*/
class StaticQueue{
public:
	int head;	//指向當前關鍵碼所對應桶的第一個元素在數組中的下標,-1標記為無
	int tail;	//指向當前關鍵碼所對應桶的最后一個元素在數組中的下標,-1標記為無
};
/*
	類名稱:RadixSorter
	類功能:將所有解決英文單詞按基數排序的函數,數據封裝在一個類中
	與其它類的繼承和調用關系:調用Node類,將Node類作為所輸入的英文單詞在vector中的組織形式
*/
class RadixSorter{
public:
	RadixSorter():size(53){init();};	//構造函數
	void init();		//對輸入進行初始化的函數
	void DoSort();		//對輸入的數據進行基數排序的函數
	void PrintString(int );		//輸出數組中排序的結果
private:
	void Setlength();		//將所有的輸入的字母調整為定長
	void Distribute(int  , int  ,StaticQueue * );	//LSD中分的函數
	void Collect(int & , StaticQueue *);		//LSD中收的函數
	inline int GetKeynumber(char);		//返回當前字符對應關鍵碼的桶的位置
	const int size;			//桶的多少
	int stringnumber;		//記錄所輸入數據的總數
	int length;				//記錄給定的最長的字符
	vector<Node> Myvector;	//存儲所有輸入的數據
};
/*
	函數名:init
	函數功能:處理給定的輸入,并且將輸入的string以Node的形式組織在數組里,便于處理
*/
void RadixSorter::init (){
	cout<<"please enter the max length of the string"<<endl;
	cin>>length;	//最大的單詞長度
	string tempstring;	
	Node tempnode ;
	cout<<"please enter the number of the string"<<endl;
	cin>>stringnumber;
	int i=0;
	while(i++<stringnumber){
		cin>>tempstring;
		tempnode.key=tempstring;
		tempnode.next=i;
		Myvector.push_back (tempnode);
	}
}
/*
	函數名:GetKeynumber
	函數功能:根據傳入字符,返回其所對應的桶的編號,其對應原則是
	如果是結束符,那么在第0個桶,其余字母按順序,A-Z在1-26,a-z在27-52
	參量意義:所傳入,當前需要做排序處理的字符
*/
inline int RadixSorter::GetKeynumber(char a){
	if(a=='\0')
		return 0;
	else
		if(a>='A'&&a<='Z')
			return a-'A'+1;
		else
			if(a>='a'&&a<='z')
				return a-'a'+27;
}
/*
	函數名:PrintString
	函數功能:根據排序后的順序輸出序列
	參量意義:從某個給定的位置first開始打印數組
*/
void RadixSorter::PrintString (int first){
	int i=first;
	while(i!=-1){
		cout<<Myvector[i].key <<" ";
		i=Myvector[i].next ;
	}
	cout<<endl;
}
/*
	函數名:Distribute
	函數功能:實現LSD中分的功能,將當前序列分到桶中
	參數意義:first:當前序列起始元素的在數組中的序號
			  step:當前排序的字符串的位數
			  queue:用于實現這些桶的靜態鏈
*/
void RadixSorter::Distribute (int first , int step , StaticQueue * queue){
	for(int i=0;i<size;i++)
		queue[i].head =-1;		//對靜態鏈中元素的初始化
	int begin=first;			//begin為當前處理元素在數組中的下標
	while(begin!=-1){
		string temp=Myvector[begin].key ;
		int position=GetKeynumber(temp[step]);	//position為當前第step位關鍵字所在桶的序號
		if(queue[position].head ==-1)
			queue[position].head =begin;		//子序列為空,則當前記錄為第一個記錄
		else
			Myvector[queue[position].tail].next=begin;	//否則加到子序列尾部
		queue[position].tail=begin;			//當前記錄為序列的尾部
		begin=Myvector[begin].next ;		//繼續分配下一個記錄
	}
}
/*
	函數名:Collect
	函數功能:實現LSD中收的功能,將分好的桶合在一塊成為整個序列
	參數意義:first:合并完成后,序列的首元素
			  queue:用于實現桶的靜態鏈
*/
void RadixSorter::Collect (int & first  , StaticQueue * queue){
	int k=0;
	while(queue[k].head ==-1)	//找到第一個非空的桶
		k++;
	first=queue[k].head ;		//第一個非空的桶的首元素為新序列的首元素
	int last=queue[k].tail ;
	while(k<size-1){			
		k++;
		while(k<size-1&&queue[k].head==-1) k++;		//繼續收集下一個非空的桶
		if(queue[k].head !=-1)
		{
			Myvector[last].next =queue[k].head ;	//將這個序列與上一個非空的序列連接起來
			last=queue[k].tail ;
		}
	}
	Myvector[last].next =-1;		//對最后一個元素作標記
}
/*
	函數名:SetLength
	函數功能:將所有輸入的單詞調整成為給定的最長長度的單詞的長度,多出的部分補\0
*/
void RadixSorter::Setlength (){
	vector<Node>::iterator i=Myvector.begin ();
	for(;i!=Myvector.end ();i++)
	{
		if((*i).key.length()<length)
		{
			string::iterator i_string=(*i).key.end ();
			for(int j=0;j<length-(*i).key.length() ;j++)
			{
				(*i_string)='\0';		//對多余部分補\0
				i_string++;}
		}
	}
}
/*
	函數名:DoSort
	函數功能:用LSD的基數排序處理輸入的所有單詞
*/
void RadixSorter::DoSort (){
	Setlength();	//預處理,將當前所有的單詞調成給定的長度
	StaticQueue  * queue=new StaticQueue[size];		//申請實現桶的靜態鏈
	Myvector[stringnumber-1].next =-1;		//對序列最后一個元素進行標記
	cout<<"before sorting"<<endl;
	PrintString(0);
	int first=0;
	for(int j=length-1;j>=0;j--)	//一共處理n布
	{
		Distribute(first , j , queue);
		Collect(first  ,queue);
	}
	PrintString(first);
	delete []queue;		

}
int main(){
	RadixSorter mysort;
	mysort.DoSort ();
	return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人av电影在线| 日本午夜精品一区二区三区电影| 欧洲av一区二区嗯嗯嗯啊| 麻豆精品一二三| 一区二区三区蜜桃网| 国产亚洲自拍一区| 日韩一区二区三区在线观看| 97超碰欧美中文字幕| 国产精品自拍三区| 免费亚洲电影在线| 一区二区三区影院| 中文字幕亚洲视频| 久久蜜桃一区二区| 91精品国产综合久久精品app | 青娱乐精品在线视频| 国产精品九色蝌蚪自拍| 久久久久久久久蜜桃| 69堂成人精品免费视频| 在线观看亚洲a| 国产成人超碰人人澡人人澡| 蜜桃久久久久久| 性做久久久久久免费观看| 亚洲人妖av一区二区| 国产亚洲欧美日韩俺去了| 欧美xxxxxxxxx| 91精品国产欧美一区二区成人| 欧美亚洲精品一区| 91激情在线视频| 在线观看日韩高清av| 91美女视频网站| 一本色道亚洲精品aⅴ| 99久久精品国产一区二区三区| 国产一区在线看| 久久精品国产第一区二区三区| 日韩成人精品在线| 日日夜夜免费精品| 日韩精品电影一区亚洲| 秋霞成人午夜伦在线观看| 日韩高清电影一区| 免费在线观看一区二区三区| 舔着乳尖日韩一区| 毛片av一区二区三区| 久久精品国产澳门| 国产一区999| 成人h动漫精品一区二| 大美女一区二区三区| av毛片久久久久**hd| 99久久婷婷国产综合精品| 99re热视频精品| 色综合中文字幕国产 | 成人网男人的天堂| www.亚洲色图| 日本韩国欧美在线| 欧美日韩视频专区在线播放| 7777精品伊人久久久大香线蕉的| 国产精品女主播在线观看| 国产欧美一区二区精品久导航| 国产日韩欧美不卡在线| 国产精品久久久久毛片软件| 亚洲视频 欧洲视频| 亚洲一区在线观看视频| 天堂av在线一区| 国产在线精品免费av| 成人精品电影在线观看| 色综合久久综合网97色综合 | 国产.欧美.日韩| 91偷拍与自偷拍精品| 欧美日韩国产综合一区二区| 日韩视频国产视频| 中文字幕乱码亚洲精品一区| 一区二区三区在线不卡| 免费成人结看片| 成人国产精品免费| 欧美天堂一区二区三区| wwwwww.欧美系列| 中文字幕五月欧美| 日本在线不卡视频| 丰满岳乱妇一区二区三区| 欧美影院精品一区| 久久蜜桃一区二区| 亚洲成人免费视| 国产福利不卡视频| 欧美日韩一区精品| 中文av字幕一区| 丝袜诱惑亚洲看片| 成人爽a毛片一区二区免费| 欧美亚洲综合另类| 久久久久久免费| 亚洲不卡在线观看| 国产成人av在线影院| 欧美日韩精品一区二区三区蜜桃| 久久久不卡网国产精品二区| 一区二区高清视频在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 色一情一伦一子一伦一区| 欧美一区二区三区人| 中文字幕在线观看不卡视频| 蜜臀av一区二区在线观看| 日本道精品一区二区三区| 久久综合网色—综合色88| 亚洲国产精品精华液网站| 国产成人丝袜美腿| 日韩视频免费直播| 亚洲一区二区视频在线观看| 国产成人精品www牛牛影视| 日韩一级片网站| 亚洲成人自拍偷拍| 91视视频在线观看入口直接观看www | 亚洲宅男天堂在线观看无病毒| 狠狠狠色丁香婷婷综合激情 | 国产精品久久久久9999吃药| 91一区二区三区在线观看| 久久嫩草精品久久久精品一| 午夜私人影院久久久久| 99riav久久精品riav| 国产三级精品三级| 国产乱子伦视频一区二区三区 | 日韩极品在线观看| 在线中文字幕不卡| 亚洲素人一区二区| 国产高清久久久| 久久中文娱乐网| 国模一区二区三区白浆| 欧美一级久久久| 视频在线观看一区| 69成人精品免费视频| 亚洲3atv精品一区二区三区| 欧美亚洲一区二区在线观看| 一区二区三区在线免费视频| 一本到不卡精品视频在线观看| 国产精品美女久久久久av爽李琼| 国产成人精品免费网站| 国产视频在线观看一区二区三区| 国产综合色视频| 国产亚洲精品超碰| 国产a久久麻豆| 国产精品五月天| 99热精品一区二区| 亚洲丝袜另类动漫二区| 色婷婷久久久综合中文字幕| 亚洲视频免费观看| 91国偷自产一区二区三区观看| 亚洲精品视频免费观看| 欧美在线观看一区| 婷婷中文字幕一区三区| 欧美一级夜夜爽| 国内精品伊人久久久久av一坑| 久久免费视频色| 成人福利视频在线看| 伊人一区二区三区| 7777精品伊人久久久大香线蕉| 日韩激情一二三区| 精品国产一区二区三区久久影院| 韩日av一区二区| 国产三级一区二区三区| 91麻豆国产精品久久| 亚洲电影你懂得| 日韩女优电影在线观看| 国产99精品国产| 亚洲欧美色一区| 欧美精品v日韩精品v韩国精品v| 欧美日韩精品是欧美日韩精品| 在线观看成人免费视频| 亚洲乱码中文字幕| 99视频一区二区三区| 亚洲自拍欧美精品| 欧美一个色资源| 成人免费视频视频在线观看免费| 亚洲乱码精品一二三四区日韩在线| 欧美亚洲国产一区二区三区| 麻豆国产精品官网| 26uuu欧美日本| 91蝌蚪porny九色| 石原莉奈在线亚洲三区| 国产亚洲人成网站| 欧美色综合网站| 狠狠色丁香婷综合久久| 一区二区三区**美女毛片| 欧美成人vps| 一本大道久久a久久综合婷婷| 午夜精品福利在线| 国产精品蜜臀av| 欧美一级电影网站| 一本色道久久综合亚洲aⅴ蜜桃| www.激情成人| 老汉av免费一区二区三区| 综合激情网...| 久久先锋影音av鲁色资源网| 欧洲国产伦久久久久久久| 国产精品系列在线播放| 日日嗨av一区二区三区四区| 国产精品天干天干在线综合| 91精品国产综合久久婷婷香蕉 | 日韩欧美区一区二| 成人aa视频在线观看| 精品一二三四区| 亚洲在线中文字幕| 国产精品欧美一区二区三区| 日韩欧美一级精品久久| 欧美日韩在线观看一区二区|