91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

利用隨機函數產生N個隨機整數(20000以上),對這些數進行多種方法進行排序。 要求: 1)至少采用三種方法實現上述問題求解(提示,可采用的方法有插入排序、希爾排序、起泡排序、快速排序、選擇排序、堆排序、歸并排序)。并把排序后的結果保存在不同的文件中。 2)統計每一種排序方法的性能(以上機運行程序所花費的時間為準進行對比),找出其中兩種較快的方法。

資源截圖

代碼片段和文件信息

#include
#include
#include//常用函數
#include//頭文件里面包含了對系統操作的大部分api函數
#include//應用到系統時間函數時必須使用的頭文件
#include//格式化輸出
using?namespace?std;//使用標準命名空間std
class?SortableSList??
{
?????public:
?????????SortableSList();
?????????void?Reload();????????//初始數據函數
?????????void?Save_File();?????//保存信息
?????????void?InsertSort();????//直接插入排序
?????????void?SelectSort();????//簡單選擇排序
?????????void?BubbleSort();????//冒泡排序
?????????void?QuickSort();?????//快速排序
?????????void?ShellSort();?????//希爾排序
?????????void?QuickSort(int?leftint?right);?
?????????void?PrintBeforeSort();???//排序前數組輸出
?????????void?PrintAfterSort();????//排序后數組輸出
?????private:
?????????int?Partition(int?leftint?right);
?????????void?InsSort(int?h);
?????????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()%30000;
}


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()
{???
int?ij;
????for(i=1;i???????int?x=l[i];
???????for(j=i-1;j>=0&&x ???{
???????????l[j+1]=l[j];
???????}??
???????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;
?????????for(int?j=i+1;j?????????????if(l[j] ?s=j;
?}
?????????Swap(l[i]l[s]);
?????}
}
//~~~~~~~~~~~~~~~~~~~冒泡排序~~~~~~~~~~~~~~~~~~~~
void?SortableSList::BubbleSort()
{

????int?i=n-1k=1jlast;
????while(i>0){
last=0;
for(j=0;j {
if(l[j+1] {
Swap(l[j]l[j+1]);
last=j;
}
}
i=last;
????}
}
//~~~~~~~~~~~~~~~快速排序~~~~~~~~~~~~~~~~~~~~~~~~~
int?SortableSList::Partition(int?leftint?right)
{
int?key;
key=l[left];
while(left w

評論

共有 條評論