📄 unit5_sort.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit5_sort.h"
#include "All_Sort.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define MaxDemo 100
#define MaxAuto 40000
FILE *out=fopen("out.txt","w");
int data[MaxAuto],bak[MaxAuto],IfDataOK=0;
AnsiString SearchText;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
AnsiString s=TitleW->Caption+AnsiString(MaxAuto);
TitleW->Caption=s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Output()
{
int i;
AnsiString s="";
for (i=0;i<MaxDemo;i++)
s += AnsiString(data[i]) + ", ";
CreSequence->Caption = s;
s=AnsiString(time);
TimeLable->Caption = s;
fprintf(out," %s\n",s);
}
void __fastcall TForm1::SearchOutput(int index)
{
AnsiString s;
if (index>=0)
{
s=AnsiString(index);
CreSequence->Caption = s;
}
else
CreSequence->Caption = "找不到!";
s=AnsiString(time);
TimeLable->Caption = s;
}
void __fastcall TForm1::StraightInsertClick(TObject *Sender)
{
Label6->Caption=StraightInsert->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
StraightInsertSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption); Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BinaryInsertClick(TObject *Sender)
{
Label6->Caption=BinaryInsert->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
BinaryInsertSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption); Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ShellClick(TObject *Sender)
{
Label6->Caption=Shell->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
ShellSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption);
Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BubbleClick(TObject *Sender)
{
Label6->Caption=Bubble->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
BubbleSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption);
Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::QuickClick(TObject *Sender)
{
Label6->Caption=Quick->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
QuickSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption);
Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Quick2Click(TObject *Sender)
{
Label6->Caption=Quick2->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
Quick2Sort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption);
Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StraightElectClick(TObject *Sender)
{
Label6->Caption=StraightElect->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
StraightElectSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption);
Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::HeapClick(TObject *Sender)
{
Label6->Caption=Heap->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
HeapSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption);
Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MergeClick(TObject *Sender)
{
Label6->Caption=Merge->Caption;
if (IfDataOK>0)
{
clock_t __start__ = clock();
MergeSort(data,MaxAuto); time=(double)clock()-__start__;
fprintf(out," %s",Label6->Caption);
Output();
IfDataOK=-IfDataOK;
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)
{
IfDataOK=1;
notice->Caption="OK";
CreSequence->Caption="";
fprintf(out," %s",Button11->Caption);
int i;
AnsiString s="";
bak[0]=data[0]=0;
for (i=1;i<MaxAuto;i++)
{
data[i]=data[i-1]+random(8);
bak[i]=data[i];
}
for (i=0;i<MaxDemo;i++)
s += AnsiString(data[i]) + ", ";
OriSequence->Caption = s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{
IfDataOK=2;
notice->Caption="OK";
CreSequence->Caption="";
fprintf(out," %s\n",Button10->Caption);
int i;
AnsiString s="";
for (i=0;i<MaxAuto;i++)
{
data[i]=random(MaxAuto);
bak[i]=data[i];
}
for (i=0;i<MaxDemo;i++)
s += AnsiString(data[i]) + ", ";
OriSequence->Caption = s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
IfDataOK=3;
notice->Caption="OK";
CreSequence->Caption="";
fprintf(out," %s\n",Button12->Caption);
int i;
AnsiString s="";
data[MaxAuto]=0;
for (i=MaxAuto-1;i>=0;i--)
{
data[i]=data[i+1]+random(8);
bak[i]=data[i];
}
for (i=0;i<MaxDemo;i++)
s += AnsiString(data[i]) + ", ";
OriSequence->Caption = s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RevertClick(TObject *Sender)
{
IfDataOK=-IfDataOK;
notice->Caption="OK";
CreSequence->Caption="";
int i;
AnsiString s;
for (i=0;i<MaxAuto;i++)
data[i]=bak[i];
for (i=0;i<MaxDemo;i++)
s += AnsiString(data[i]) + ", ";
OriSequence->Caption = s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EditSearchChange(TObject *Sender)
{
SearchText=EditSearch->Text;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StraightSearchClick(TObject *Sender)
{
if (IfDataOK>0)
{
clock_t __start__ = clock();
int i=StrtSearch(SearchText,data,MaxAuto); time=(double)clock()-__start__; SearchOutput(i);
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BinarySearchClick(TObject *Sender)
{
if (IfDataOK>0)
{
clock_t __start__ = clock();
int i=BinaSearch(SearchText,data,MaxAuto); time=(double)clock()-__start__; SearchOutput(i);
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PartionSearchClick(TObject *Sender)
{
if (IfDataOK>0)
{
clock_t __start__ = clock();
int i=PartSearch(SearchText,data,MaxAuto); time=(double)clock()-__start__; SearchOutput(i);
}
else
notice->Caption="请先生成序列!";
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -