首页 > 代码库 > 直接插入排序 快速排序算法 直接选择排序

直接插入排序 快速排序算法 直接选择排序

以下三个验证性实验都做。

1)直接插入排序算法验证。

2)快速排序算法验证。

3)直接选择排序算法验证。

 

#include<iostream>#include<cstdlib>using namespace std;class dishizhang{public:    int a[10];    int b[10];    dishizhang()    {        int tem;        for(int i = 0 ; i < 10 ; i ++)        {            while(1)            {                int flag = 0;                tem = rand() % 10;                for(int j = 0 ; j < i ; j ++)                {                    if(tem == a[j])                    {                        flag = 1;                        break;                    }                }                if(flag == 0)                {                    a[i] = tem;                    break;                }            }        }        cout<<"原始数列为:";        for(int i = 0 ; i < 10 ; i++)        {            cout<<a[i]<<"  ";        }        cout<<endl;        for(int j = 0 ; j < 10 ; j++)        {            b[j] = a[j];        }    }    void zhijiecharu()    {        int tem[10];        for(int i = 0 ; i < 10 ; i ++)        {            tem[i] = a[i];        }        for(int i = 1 ; i < 10 ; i++)        {            int j = i-1;            int temnum = tem[i];            while(j >= 0 && temnum < tem[j])            {                tem[j+1] = tem[j];                j--;            }            tem[j+1] = temnum;        }        for(int i = 0 ; i < 10 ; i++)        {            cout<< tem[i] <<" ";        }    }    void kuaipai(int low , int high)    {        if( low < high)        {            int tem = fuzhukuaipai( low , high);            kuaipai(low , tem -1);            kuaipai(tem+1,high);        }    }    int fuzhukuaipai(int low , int high)    {        int tem = b[low];        while(low < high)        {            while(low < high && b[high] >= tem )--high;            b[low] = b[high];            while(low < high && b[low] <= tem) ++low;            b[high] = b[low];        }        b[low] = tem;        return low;    }    void zhijiexuanze()    {        int tem[10];        for(int i = 0 ; i < 10 ; i++)        {            tem[i]  =  a[i];        }        int i,temnum;        i = 0;        int temi;        while( i < 10)        {            int flag = 0;            temnum = tem[i];            for(int j = i ; j < 10 ; j++)            {                if(tem[j] < temnum)                {                    temnum = tem[j];                    temi = j;                    flag = 1;                }            }            int num;            if(flag!=0)            {                num = tem[temi];                tem[temi] = tem[i];                tem[i] = num;            }            i++;        }        cout<<"直接选择后的序列是:";        for(int i = 0 ; i < 10 ; i++)        {            cout<<tem[i]<<" ";        }    }    void print()    {        for(int i = 0 ; i < 10 ; i++)        {            cout<<a[i]<<" ";        }    }};int main(){    dishizhang duskcl;    duskcl.zhijiexuanze();}