• 大小: 308KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: C/C++
  • 标签: C++  

资源简介

数据结构与算法(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


评论

共有 条评论