資源簡介
數據結構與算法(C++)內排序算法與比較 有完整的實驗報告 解壓后在VC6.0中打開.dsw文件就可以運行

代碼片段和文件信息
#include
#include
#include//常用函數
#include
#include
#include//格式化輸出
int?compare[6]change[6]move[6];??//compare數組是比較次數,change數組是交換次數,move數組是移動次數
class?SortableSList??
{
????public:
????????SortableSList();
????????void?Reload();???????//初始數據函數
????????void?Save_File();????//保存信息
????????void?InsertSort();???//直接插入排序
????????void?SelectSort();???//簡單選擇排序
????????void?BubbleSort();???//冒泡排序
????????void?QuickSort();????//快速排序
????????void?ShellSort();????//希爾排序
????????void?MergeSort();????//兩路合并排序
????????void?QuickSort(int?leftint?right);
????private:
????????int?Partition(int?leftint?right);
????????void?InsSort(int?h);
????????void?Merge(int?leftint?midint?right);
????????int?*l;?????????
????????int?n;
????????int?*randarray;
};
SortableSList::SortableSList()
{
????cout<<“?|?請你輸入要排序的數字個數??n?:?“;
????cin>>n;//輸入要生成隨機數的個數
cout<<“?|????????????????????????????????????????????????????????????????????????????|“< cout<<“?|----------------------------------------------------------------------------|“< cout<<“?|????????????????????????????????????????????????????????????????????????????|“< ????cout<<“?|?請稍等......???????????????????????????????????????????????????????????????|“< ????l=new?int[n];
????randarray=new?int[n];
????for(int?i=0;i ??????l[i]=randarray[i]=rand()%10000;
}
void?SortableSList::Reload()???//初始數據函數
{
??int?i;
??for(i=0;i ??l[i]=randarray[i];
}
void?SortableSList::Save_File()?//保存信息
{
????int?i;
????ofstream?ofile(“排序.txt“);//文件輸出流
????for(i=1;i<=n;i++)
????????ofile< ????ofile.close();
????ifstream?infile(“排序.txt“);//輸入文件對操作
????for(i=1;i<=n;i++)
????????infile>>l[i];
????infile.close();
}
//~~~~~~~~~~~~~~~直接插入排序~~~~~~~~~~~~~~~~~~~
void?SortableSList::InsertSort()
{???
????for(int?i=1;i ????????int?x=l[i];
????????move[0]++;
????????for(int?j=i-1;j>=0&&x {
????????????compare[0]++;
????????????l[j+1]=l[j]change[0]++;
????????????move[0]++;
????????}
????????compare[0]++;
????????l[j+1]=x;
????}
}
//~~~~~~~~~~~~~~~簡單選擇排序~~~~~~~~~~~~~~~~~~~~~
void?Swap(int&aint&b)
{
????int?e=a;a=b;b=e;
}
void?SortableSList::SelectSort()
{
????int?s;
????for(int?i=0;i {
????????s=i;
????????compare[1]++;
????????for(int?j=i+1;j ????????????if(l[j] ????????Swap(l[i]l[s])move[1]=move[1]+3change[1]++;
????}
}
//~~~~~~~~~~~~~~~快速排序~~~~~~~~~~~~~~~~~~~~~~~~~
int?SortableSList::Partition(int?leftint?right)
{
????int?i=leftj=right+1;
????do{
????????do?
????????{i++;?compare[3]++;}while(l[i] ????????do?
????????{j--;?compare[3]++;}while(l[j]>l[left]);
?????????if(i ????}while(i ????Swap(l[left]l[j])move[3]=move[3]+3change[3]++;
????return?j;
}
void?SortableSList::QuickSort(int?leftint?right)
{
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????862590??2000-06-11?21:56??內排序算法比較\1.bmp
?????文件?????866054??2000-06-11?21:58??內排序算法比較\2.bmp
?????文件?????819126??2000-06-11?22:00??內排序算法比較\3.bmp
?????文件?????151552??2000-06-11?21:56??內排序算法比較\Debug\vc60.pdb
?????文件?????213072??2000-06-11?21:56??內排序算法比較\Debug\內排序算法比較.exe
?????文件??????48924??2000-06-11?21:56??內排序算法比較\Debug\內排序算法比較.obj
?????文件?????599040??2000-06-11?21:56??內排序算法比較\Debug\內排序算法比較.pdb
?????文件??????11175??2008-06-18?13:02??內排序算法比較\內排序算法比較.cpp
?????文件???????3499??2008-06-04?17:54??內排序算法比較\內排序算法比較.dsp
?????文件????????536??2008-06-04?19:01??內排序算法比較\內排序算法比較.dsw
?????文件??????41984??2000-06-11?22:05??內排序算法比較\內排序算法比較.ncb
?????文件??????53760??2000-06-11?22:05??內排序算法比較\內排序算法比較.opt
?????文件???????1204??2000-06-11?21:56??內排序算法比較\內排序算法比較.plg
?????文件???????9750??2000-06-11?21:59??內排序算法比較\排序.txt
?????文件?????189952??2000-06-11?22:07??06118333曾曉云(C++).doc
?????目錄??????????0??2008-07-02?16:52??內排序算法比較\Debug
?????目錄??????????0??2008-07-02?16:52??內排序算法比較
-----------?---------??----------?-----??----
??????????????3872218????????????????????17
- 上一篇:C++編程思想兩卷合訂本-高清完美帶書簽版.pdf
- 下一篇:先序后繼線索二叉樹
評論
共有 條評論