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

  • 大小: 12KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-14
  • 語言: C/C++
  • 標簽: c++??排序??性能比較??

資源簡介

利用隨機函數產生N個隨機整數(20000以上),對這些數進行多種方法進行排序

資源截圖

代碼片段和文件信息

#include
#include
#include//常用函數
#include
#include
#include//格式化輸出

using?namespace?std;//聲明了名字空間std有關函數和變量都可以直接調用而不需要在前面加域運算符“::“比如沒有這句的話輸出語句如下:std::cout<<a<<std::endl
int?compare[7]change[7]move[7];??//compare數組是比較次數,change數組是交換次數,move數組是移動次數
class?SortableSList??
{
????public:
????????SortableSList();
????????void?Reload();???????//初始數據函數
????????void?Save_File();????//保存信息
????????void?InsertSort();???//直接插入排序
????????void?SelectSort();???//簡單選擇排序
????????void?BubbleSort();???//冒泡排序
????????void?QuickSort();????//快速排序
????????void?ShellSort();????//希爾排序
????????void?HeapSort();???//堆排序
????????void?MergeSort();????//兩路合并排序
????????void?QuickSort(int?leftint?right);?
????????void?PrintBeforeSort();
????????void?PrintAfterSort();
????private:
????????int?Partition(int?leftint?right);
????????void?InsSort(int?h);
????????void?Merge(int?leftint?midint?right);
????????void?Min(int?i);
????????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]=20000+rand();
}

void?SortableSList::Reload()???//初始數據函數
{
??int?i;
??for(i=0;i??l[i]=randarray[i];

}
void?SortableSList::Save_File()?//保存信息
{
????int?i;
????ofstream?ofile(“排序.txt“);//如果文件不存在,則新建一個文件
????for(i=0;i????????ofile<????ofile.close();
????
}
//~~~~~~~~~~~~~~~直接插入排序~~~~~~~~~~~~~~~~~~~
void?SortableSList::InsertSort()
{???
?int?ij;
????for(i=1;i????????int?x=l[i];
????????move[0]++;
????????for(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????}whil

評論

共有 條評論