Анализ некоторых видов сортировок

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

аниюВыбором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