📄 sort01.cpp
字号:
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 + -