⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort01.cpp

📁 随机产生个整数n=100
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        printf("\n\t\t\t\t 【×】Error:\n\t\t待排序数据数目小于2或超出最大输入量,请按任意键重新输入→\n\t\t\t\t");
        _getch();
        system("cls");
        goto loop1 ;
    }
    printf("\n");
    
    for(i=0;i<L->length;i++)
    {
        randomness[i]=i ;
    }
    for(i=0;i<L->length;i++)
    swap(randomness[i],randomness[random(L->length)]);
    for(i=0;i<L->length;i++)
    swap(L->INT[i],randomness[i]);
    system("cls");
}


//初始化排序的数据
void INIT(SqList*L)
{
    int i ;
    char c ;
    loop :
    ;
    TIMER.curtime();
    printf("\t        ─────────────────────\n");
    printf("\n\t\t\t请输入待排序数据的数量【>=2】: ");
    //检测是否为正确输入数
    while(scanf("%d",&L->length)!=1)
    {
        while((c=getchar())!='\n');
        printf("\n\t\t【×】Error:错误的输入,请按任意键重新输入→\n\t\t\t\t");
        _getch();
        system("cls");
        goto loop ;
    }
    if(L->length<2||L->length>N)
    {
        printf("\n\t\t\t\t 【×】Error:\n\t\t待排序数据数目小于2或超出最大输入量,请按任意键重新输入→\n\t\t\t\t");
        _getch();
        system("cls");
        goto loop ;
    }
    printf("\n");
    for(i=0;i<L->length;i++)
    {
        
        printf("\t\t\t    请输入第%d个数据: ",i);
        lable :
        ;
        //检测是否为正确输入数
        while(scanf("%d",&L->INT[i])!=1)
        {
            while((c=getchar())!='\n');
            printf("\n【×】Error:数据输入出错,请重新输入→");
            goto lable ;
        }
    }
    printf("\n\n\n\n\t\t\t数据初始化成功,按任意键继续→\n");
    _getch();
    system("cls");
}
//格式化输出─
void PRIN()
{
    int i ;
    printf("\t\t");
    for(i=0;i<L.length;i++)
    printf("──");
    printf("\n");
}
int MENUE()
{
    int input_data ;
    char c ;
    TIMER.curtime();
    printf("\t      ╭─────────────────────╮\n");
    printf("\t       |          各种排序的基本操作实现          |\n");
    printf("\t      |─────────────────────|\n");
    printf("\t       |          1、手动(Hand)输入数据           |\n");
    printf("\t      |─────────────────────|\n");
    printf("\t       |          2、随机(Rand)生成数据           |\n");
    printf("\t      |─────────────────────|\n");
    printf("\t       |          3、退         出  ...           |\n");
    printf("\t       ╰─────────────────────╯\n");
    printf("\t                        请正确选择:");
    //检测是否为正确输入数
    while(scanf("%d",&input_data)!=1)
    {
        while((c=getchar())!='\n');
        return input_data ;
    }
    fflush(stdin);
    return input_data ;
}
void SUB_MENUE()
{
    char c ;
    for(;;)
    {
        TIMER.curtime();
        printf("\t      ╭─────────────────────╮\n");
        printf("\t       |          各种排序的基本操作实现          |\n");
        printf("\t      |─────────────────────|\n");
        printf("\t       |          1、重新(Again)输入数据          |\n");
        printf("\t       |          2、折半(Binary)排序             |\n");
        printf("\t       |          3、直接插入(Insert)排序         |\n");
        printf("\t       |          4、直接选择(Select)排序         |\n");
        printf("\t       |          5、希尔(Shell)排序              |\n");
        printf("\t       |          6、起泡(Bubble)排序             |\n");
        printf("\t       |          7、快速(Partition)排序          |\n");
        printf("\t       |          8、堆 (Heap)排序                |\n");
        printf("\t       |          9、随机(Rand)生成               |\n");
        printf("\t       |          Q、退     出  ...               |\n");
        printf("\t       ╰─────────────────────╯\n");
        printf("\t        【共%d个数据】如下:\n",L.length);
        int a1[2000];
        printf("\t                        请选择:");
        scanf("%s",&c);
        switch(c)
        {
            case '1' :
            system("cls");
            INIT(&L);
            system("cls");
            break ;
            case '2' :
            cout<<"折半(Binary)排序"<<endl ;
            cout<<"Sort randomness N="<<L.length<<endl ;
            for(int i=0;i<L.length;i++)
            {
                a1[i]=L.INT[i];
            }
            testBinaryInsertSort(a1,L.length);
            printf("\n\t\t\t         排序成功!!!\n\t\t\t    ");
            system("pause");
            system("cls");
            break ;
            case '3' :
            cout<<"直接插入(Insert)排序"<<endl ;
            cout<<"Sort randomness N="<<L.length<<endl ;
            
            for(int i=0;i<L.length;i++)
            {
                a1[i]=L.INT[i];
            }
            testInsertSort(a1,L.length);
            printf("\n\t\t\t         排序成功!!!\n\t\t\t    ");
            system("pause");
            system("cls");
            break ;
            case '4' :
            cout<<"直接选择(Select)排序"<<endl ;
            cout<<"Sort randomness N="<<L.length ;
            for(int i=0;i<L.length;i++)
            {
                a1[i]=L.INT[i];
            }
            testSelectSort(a1,L.length);
            printf("\n\t\t\t          排序成功!\n\t\t\t     ");
            system("pause");
            system("cls");
            break ;
            case '5' :
            cout<<"希尔(Shell)排序"<<endl ;
            cout<<"Sort randomness N="<<L.length ;
            for(int i=0;i<L.length;i++)
            {
                a1[i]=L.INT[i];
            }
            testShellSort(a1,L.length);
            printf("\n\t\t\t          排序成功!\n\t\t\t     ");
            system("pause");
            system("cls");
            break ;
            case '6' :
            cout<<"起泡(Bubble)排序"<<endl ;
            cout<<"Sort randomness N="<<L.length ;
            for(int i=0;i<L.length;i++)
            {
                a1[i]=L.INT[i];
            }
            testBubbleSort(a1,L.length);
            printf("\n\t\t\t          排序成功!\n\t\t\t     ");
            system("pause");
            system("cls");
            break ;
            case '7' :
            cout<<"快速(Partition)排序"<<endl ;
            cout<<"Sort randomness N="<<L.length ;
            for(int i=0;i<L.length;i++)
            {
                a1[i]=L.INT[i];
            }
            testQuickSort(a1,L.length);
            printf("\n\t\t\t          排序成功!\n\t\t\t    ");
            system("pause");
            system("cls");
            break ;
            case '8' :
            cout<<"堆(Heap)排序"<<endl ;
            cout<<"Sort randomness N="<<L.length ;
            for(int i=0;i<L.length;i++)
            {
                a1[i]=L.INT[i];
            }
            testHeapSort(a1,L.length);
            printf("\n\t\t\t           排序成功!\n\t\t\t    ");
            system("pause");
            system("cls");
            break ;
            case '9' :
            RAND(&L);
            printf("\n\t\t\t         随机生成成功!\n\t\t\t   ");
            system("pause");
            system("cls");
            break ;
            case 'q' :
            case 'Q' :
            system("cls");
            printf("\n\n\n\n\t\t\t   谢 谢 使 用 , 再 见!!!\n");
            printf("\n\t\t\t     任 意 键 退 出!\n\t\t\t");
            _getch();
            exit(0);
            break ;
            default :
            printf("\n\t\t\t\t 【×】Error:\n\t\t\t  输入有误,请重新选择!!!\n");
            _getch();
            system("cls");
            break ;
        }
    }
}
int main(void)
{
    int input_data ;
    do 
    {
        input_data=MENUE();
        switch(input_data)
        {
            case 1 :
            system("cls");
            INIT(&L);
            SUB_MENUE();
            break ;
            case 2 :
            system("cls");
            RAND(&L);
            SUB_MENUE();
            break ;
            case 3 :
            system("cls");
            printf("\n\n\n\n\t\t\t   谢 谢 使 用 , 再 见!!!\n");
            printf("\n\t\t\t     任 意 键 退 出!\n\t\t\t");
            _getch();
            exit(0);
            break ;
            default :
            printf("\n\t\t\t\t 【×】Error:\n\t\t\t  输入有误,请重新选择!!!\n");
            _getch();
            system("cls");
            break ;
        }
    }
    while(input_data!=3);
    return 0 ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -