Анализ некоторых видов сортировок
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
аниюВыбором3,95150000000Рандом1,810По возрастанию3,74300000000По убываниюПирамидальная0,3353265Рандом0,1353265По возрастанию0,1353118По убыванию
Список литературы
1.
.">
.Русскоязычный форум по C++
4.Программирование на языке высокого уровня СИ. Часть II: практикум/Сост. О.В. Шестопал, О.В. Сташкова. - Тирасполь, 2010. - 83 с.
Приложение
Листинг программы
Файл МENU.CPP
#include
#include
#include
#include
#include
#include "SORTI.CPP"
#include "FILE.CPP"Zadaniemassiva(int midx,int midy,int& metod,long int& razmer,int& p) {i=0;(0,1);(0,0,midx*2,midy/2+40);(midx/25, midy/5, "Vvedite razmer massiva: ");(midx/25, midy/5-20, "Massiv ne bolee 24500 elementov!");symbol[6],m[2]={ ,\0};((i<5) && ((symbol[i]!=13) || (i==0))) {
symbol[i]=getch();
if ((symbol[0]!=0) && (symbol[i]>=0) && (symbol[i]<=9)) {
m[0]=symbol[i];
i++;
outtextxy(midx/25+190+i*8, midy/5, m);
}
else if ((symbol[i]==8) && (i!=0)){
setfillstyle(0,2);
bar(midx/25+190+i*8,midy/5+10,midx/25+190+i*12+50,midy/5-10);
i--;
}
}[i]=\0;(atol(symbol)>24500) return Zadaniemassiva(midx,midy,metod,razmer,p);=atoi(symbol);(1,2);(midx/25+26*7,midy/5+15,midx/25+26*7+16*7,midy/5+30);(midx/25, midy/5+20, "Tip zapolneni9 massiva: Random Po Vozrastaniu Po ubivaniju");x;=1;(x!=13) {=getch();
if (x==77) {
setfillstyle(0,1);
bar(midx/25+26*7,midy/5+15,midx/25+1000,midy/5+30);
if (metod==3) metod=0;
metod++;
setfillstyle(1,2);
bar(midx/25+26*7+(metod-1)*16*7,midy/5+15,midx/25+26*7+metod*16*7,midy/5+30);
outtextxy(midx/25, midy/5+20, "Tip zapolneni9 massiva: Random Po Vozrastaniu Po ubivaniju");
if (metod==3) metod=0;
}
if (x==75) {
setfillstyle(0,1);
bar(midx/25+26*7,midy/5+15,midx/25+1000,midy/5+30);
if (metod==0) metod=3;
metod--;
if (metod==0) metod=3;
setfillstyle(1,2);
bar(midx/25+26*7+(metod-1)*16*7,midy/5+15,midx/25+26*7+metod*16*7,midy/5+30);
outtextxy(midx/25, midy/5+20, "Tip zapolneni9 massiva: Random Po Vozrastaniu Po ubivaniju");
}
}=1;0;
}Podmenu(int midx,int midy,int h) {((midx+110),midy+h*30);("Po Ubivaniju");((midx+110),midy+h*30+30);("Po Vozrastaniju");0;
}F1(int midx,int midy) {((midx-7*14),midy-30);("Zadanie parametrov masiva");((midx-7*3),midy);("Puzirek");((midx-7*3),midy+30);("Vstavki");((midx-7*7),midy+60);("Protalkivani9");((midx-7*7),midy+90);("Piramidalina9");((midx-7*2),midy+120);("Exit");0;
}F(int midx,int midy,int h,int p) {y=midy;(int i=-30;i<=120;i+=30) {
if (p==0) {
setfillstyle(1,7);
bar(midx-100, y-10+i, midx+100,y+10+i);
}
if ((p==1) || (-1==(i/30)) || ((i/30)==4)) {
setfillstyle(1,2);
bar(midx-100, y-10+i, midx+100,y+10+i);
}
if (h==(i/30)) {
setfillstyle(1,3);
bar(midx-100, y-10+i, midx+100,(y+10)+i);
}
}
return F1(midx,midy);
}F2(int midx,int midy,int h,int k) {
poly[12];(int i=0;i<60;i+=30) {(1,2);[0]= midx+100;[1]= midy+h*30+i;[2]=midx+110;[3]=midy+10+h*30+i;[4]=midx+230;[5]=midy+10+h*30+i;[6]=midx+230;[7]=midy-10+h*30+i;[8]=midx+110;[9]=midy-10+h*30+i;[10]=midx+100;[11]=midy+h*30+i;(6, poly);(midx+101,midy+h*30+i, 15);
if (k==(i/30)) {
setfillstyle(1,3);
poly[0]= midx+100;
poly[1]= midy+h*30+i;
poly[2]=midx+110;
poly[3]=midy+10+h*30+i;
poly[4]=midx+230;
poly[5]=midy+10+h*30+i;
poly[6]=midx+230;
poly[7]=midy-10+h*30+i;
poly[8]=midx+110;
poly[9]=midy-10+h*30+i;
poly[10]=midx+100;
poly[11]=midy+h*30+i;
drawpoly(6, poly);
floodfill(midx+101,midy+h*30+i, 15);
}
}(midx,midy,h);0;
}main(void)
{gdriver = DETECT, gmode, errorcode;midx, midy, i;(&gdriver, &gmode, "");= getmaxx() / 2;= getmaxy() / 3;j=midy-30;h=-1,k=0,p=0;long int iter=0;x;* s;* d;metod,r;int razmer;time1,s1;(x!=113) {
F(midx,midy,h,p);
x=getch();
if (x==80) {
h++;
setfillstyle(0,2);
bar(0,midy/2,midx/2+60,midy*2);
bar(0,midy/2,midx*2,midy/2+40);
bar(midx/25,midy+170,midx,midy+190);
}
if (x==72) {
h--;
setfillstyle(0,2);
bar(0,midy/2,midx/2+60,midy*2);
bar(0,midy/2,midx*2,midy/2+40);
bar(midx/25,midy+170,midx,midy+190);
}
if (h==5) h=-1;
if (h==-2)h=4;
if (p==0) {
if (h==0) h=4;
if (h==3) h=-1;
}
F(midx,midy,h,p);
if ((x==13) && (h!=4) && (h!=-1)) { int k=0;
setfillstyle(0,2);
bar(0,midy/2+20,midx/2+60,midy*2);
bar(0,midy/2,midx*2,midy/2+40);
bar(midx/25,midy+170,midx,midy+190);
while (x!=8) {
if (x==80) k++;
if (x==72) k--;
if (k==2) k=0;
if (k==-1) k=1;
F2(midx,midy,h,k);
x=getch();
if (x==13) {
int* kop=new int[razmer];
massiv(kop,razmer,metod);
moveto(midx/25,midy/2);
outtext("Massiv sgenerirovan");
moveto(midx/25,midy/2+20);
outtext("i soxranen v");
moveto(midx/25,midy/2+40);
outtext("C:/BORLANDC/BIN/2.BAK");
File1(kop,razmer);
if (h==0){
na4alo(time1,r,s1);
puzir(kop,razmer,iter);
konec(time1,r,s1);
}
if (h==1) {
na4alo(time1,r,s1);
vstavka(kop,razmer,iter);
konec(time1,r,s1);
}
if (h==2) {
na4alo(time1,r,s1);
protalkivanie(kop,razmer,iter);
konec(time1,r,s1);
}
if (h==3) {
na4alo(time1,r,s1);
Pirmidalina9(kop,razmer,iter);
konec(time1,r,s1);
}
File(kop,k,razmer);
x=8;
delete (kop);
moveto(midx/25,midy);
outtext("Massiv otsortirovan");
if (h==0) {
moveto(midx/25,midy+20);
outtext("metodom puzirika!");
}
if (h==1) {
moveto(midx/25,midy+20);
outtext("Metodom vstavki!");
}
if (h==2) {
moveto(midx/25,midy+20);
outtext("Metodom protalkivani9!");
}
if (h==3) {
moveto(midx/25,midy+20);
outtext("Piramidalinoi sortirovkoi");
}
moveto(midx/25,midy+40);
outtext("Massiv soxranen v");
moveto(midx/25,midy+60);
outtext("C:/BORLANDC/BIN/1.BAK");
ultoa(iter,d,10);
outtextxy(midx/25,midy+180,"Kolli4estvo itteracii:");
outtextxy(midx/25+7*25,midy+180,d);
}
}
setfillstyle(1,16);
bar (midx+100,midy-90,midx+300,midy+200);
}
if ((x==13) && (h==4)) x=113;
if ((x==13) && (h==-1)) Zadaniemassiva(midx,midy,metod,razmer,p);
}();0;
}
Файл SORTI.CPP
#include
#include
#include
#include
#include
#include
na4alo(double& time1,int& r,double& s1) {min[10];sec[10];chas[10];hund[10];time t;(&t);(t.ti_hour,chas,10);(t.ti_min,min,10);(t.ti_sec,sec,10);(t.ti_hund,hund,10);(int i=0;min[i];i++);(i==1) {
min[1]=min[0];
min[0]=0;
sec[2]=\0;
}(i=0;sec[i];i++);(i==1) {
sec[1]=sec[0];
sec[0]=0;
sec[2]=\0;
}(i=0;hund[i];i++);(i==1) {
hund[1]=hund[0];
hund[0]=0;
hund[2]=\0;
}
(1,0);(300,390,300+40*7,450);(300,400,"Vremia na4ala sortirovki:");(300+29*7,400,chas);(300+31*7,400,":");(300+32*7,400,min);(300+34*7,400,":");(300+35*7,400,sec);(300+37*7,400,".");(300+38*7,400,hund);=t.ti_hund;=t.ti_min*60+t.ti_sec+(s1/100);=t.ti_hour;
0;
}konec(double time1,int r,int s1)
{r2;min[10];sec[10];chas[10];hund[10];time[10];timer[10];
time t2;(&t2);
itoa(t2.ti_hour,chas,10);
itoa(t2.ti_min,min,10);
itoa(t2.ti_sec,sec,10);
itoa(t2.ti_hund,hund,10);
(int i=0;min[i];i++);(i==1) {
min[1]=min[0];
min[0]=0;
sec[2]=\0;
}(i=0;sec[i];i++);(i==1) {
sec[1]=sec[0];
sec[0]=0;
sec[2]=\0;
}(i=0;hund[i];i++);(i==1) {
hund[1]=hund[0];
hund[0]=0;
hund[2]=\0;
}
s2)s2=100+s2-s1;s2=s2-s1;(s2,timer,10);(i=0;timer[i];i++);">(1,0);(300+29*7,4