Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Zadanie:
- Stworz 3 1000 elementowe tablice tab1[1000] tab2[1000] i tab3[1000]. Tab1 ma byc posortowana rosnąco, tab2 - malejaca, tab3- random od 0 do 9.
- Wykonaj kopie tablic (do kazdego sortowania) - kazde z sortowan ma miec swoja tablice.
- Wykorzystujac poniższy kod uzupełnij tabelke:
- Sortowanie | czas | ilosc operacji |
- | Tab1 Tab2 Tab3 | Tab1 Tab2 Tab3 |
- Wybór | | |
- Wstawianie | | |
- Babelkowe | | |
- Babelkowe+ | | |
- Przypomnienie time.h
- #include <time.h>
- #include <conio.h>
- #include <iostream>
- using namespace std;
- int main(){ int s;
- clock_t start, stop;
- float time;
- start=clock();
- cout<<start<<endl;
- for(s=1;s<100;s++){cout<<s;system("cls");} //tutaj umieszczamy sprawdzany algorytm
- stop=clock();
- cout<<"start="<<start<<endl;
- cout<<"stop="<<stop<<endl;
- time=(stop - start);
- cout<<"time="<<time<<endl;
- getch();
- return 0;
- }*/
- #include<iostream>
- #include<cstdio>
- #include<ctime>
- #include<time.h>
- #include<cstdlib>
- #include<windows.h>
- using namespace std;
- const int ile=1000;
- int tab1[ile],tab2[ile],tab3[ile],tabZ[ile],ilOpPrze;
- HANDLE g_hConsol = GetStdHandle(STD_OUTPUT_HANDLE);
- void gotoxy(const int x11, const int y22){
- COORD coord = {x11, y22};
- SetConsoleCursorPosition(g_hConsol, coord);
- }
- void sortujB(){
- int j,tab1L[ile],tab2L[ile],tab3L[ile];
- long int ilOp;
- clock_t start, stop;
- float czas;
- for(int i=0;i<ile;i++){
- tab1L[i]=tab1[i];
- tab2L[i]=tab2[i];
- tab3L[i]=tab3[i];
- }
- ilOp=0;
- start=clock();
- for(int i=0;i<ile;i++){ //tab1
- ilOp++;
- for(j=0;j<ile;j++){
- ilOp++;
- if(tab1L[j]>tab1L[j+1]){swap(tab1L[j],tab1L[j+1]);ilOp++;}
- }
- }
- stop=clock();
- czas=stop-start;
- gotoxy(19,4);cout<<czas;
- gotoxy(46,4);cout<<ilOp;
- ilOp=0;
- start=clock();
- for(int i=0;i<ile;i++){ //tab2
- ilOp++;
- for(j=0;j<ile;j++){
- ilOp++;
- if(tab2L[j]>tab2L[j+1]){swap(tab2L[j],tab2L[j+1]);ilOp++;}
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(28,4);cout<<czas;
- gotoxy(55,4);cout<<ilOp;
- ilOp=0;
- start=clock();
- for(int i=0;i<ile;i++){ //tab3
- ilOp++;
- for(j=0;j<ile;j++){
- ilOp++;
- if(tab3L[j]>tab3L[j+1]){swap(tab3L[j],tab3L[j+1]);ilOp++;}
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(37,4);cout<<czas;
- gotoxy(65,4);cout<<ilOp;
- }
- void sortujBU(){
- int j,tab1L[ile],tab2L[ile],tab3L[ile];
- long int ilOp;
- clock_t start, stop;
- float czas;
- for(int i=0;i<ile;i++){
- tab1L[i]=tab1[i];
- tab2L[i]=tab2[i];
- tab3L[i]=tab3[i];
- }
- ilOp=0;
- start=clock();
- for(int i=ile-1;i>0;i--){ //tab1
- ilOp++;
- for(j=0;j<i;j++){
- ilOp++;
- if(tab1L[j]>tab1L[j+1]){swap(tab1L[j],tab1L[j+1]);ilOp++;}
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(19,5);cout<<czas;
- gotoxy(46,5);cout<<ilOp;
- ilOp=0;
- start=clock();
- for(int i=ile-1;i>0;i--){ //tab2
- ilOp++;
- for(j=0;j<i;j++){
- ilOp++;
- if(tab2L[j]>tab2L[j+1]){swap(tab2L[j],tab2L[j+1]);ilOp++;}
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(28,5);cout<<czas;
- gotoxy(55,5);cout<<ilOp;
- ilOp=0;
- start=clock();
- for(int i=ile-1;i>0;i--){ //tab3
- ilOp++;
- for(j=0;j<i;j++){
- ilOp++;
- if(tab3L[j]>tab3L[j+1]){swap(tab3L[j],tab3L[j+1]);ilOp++;}
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(37,5);cout<<czas;
- gotoxy(65,5);cout<<ilOp;
- }
- void los(){
- int j=999;
- srand(time(NULL));
- for(int i=0;i<ile;i++){
- tab3[i]=rand()%10;
- tab1[i]=i;
- tab2[i]=j;
- j--;
- }
- }
- void sortujWyb(){
- int i,poz,max,tab1L[ile],tab2L[ile],tab3L[ile];
- long int ilOp;
- clock_t start, stop;
- float czas;
- for(int i=0;i<ile;i++){
- tab1L[i]=tab1[i];
- tab2L[i]=tab2[i];
- tab3L[i]=tab3[i];
- }
- ilOp=0;
- start=clock();
- for(i=0;i<ile;i++){//tab1
- max=tab1L[i];
- poz=i;
- ilOp++;
- for (int a=i;a<ile;a++){
- ilOp++;
- if (tab1L[a]<max){
- max=tab1L[a];
- poz=a;
- swap(tab1L[poz],tab1L[i]);
- ilOp++;
- }
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(19,2);cout<<czas;
- gotoxy(46,2);cout<<ilOp;
- ilOp=0;
- start=clock();
- for(i=0;i<ile;i++){//tab2
- max=tab2L[i];
- poz=i;
- ilOp++;
- for (int a=i;a<ile;a++){
- ilOp++;
- if (tab2L[a]<max){
- max=tab2L[a];
- poz=a;
- swap(tab2L[poz],tab2L[i]);
- ilOp++;
- }
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(28,2);cout<<czas;
- gotoxy(55,2);cout<<ilOp;
- ilOp=0;
- start=clock();
- for(i=0;i<ile;i++){//tab3
- max=tab3L[i];
- poz=i;
- ilOp++;
- for (int a=i;a<ile;a++){
- ilOp++;
- if (tab3L[a]<max){
- max=tab3L[a];
- poz=a;
- swap(tab3L[poz],tab3L[i]);
- ilOp++;
- }
- }
- }
- stop=clock();
- czas=(stop-start);
- gotoxy(37,2);cout<<czas;
- gotoxy(65,2);cout<<ilOp;
- }
- void restartTabZ(){
- for(int i=0;i<ile;i++){
- tabZ[i]=0;
- }
- }
- int przesun(int ileP){
- ilOpPrze=0;
- for(int i=0;i<ileP;i++){
- tabZ[i]=tabZ[i+1];
- ilOpPrze++;
- }
- }
- int sortujWst(){
- int j,war,byl,tab1L[ile],tab2L[ile],tab3L[ile];
- long int ilOp;
- clock_t start, stop;
- float czas;
- for(int i=0;i<ile;i++){
- tab1L[i]=tab1[i];
- tab2L[i]=tab2[i];
- tab3L[i]=tab3[i];
- }
- ilOp=0;
- restartTabZ(); //tab1
- start=clock();
- tabZ[ile-1]=tab1L[ile-1];
- for(int i=0;i<ile-1;i++){
- war=tab1L[i];byl=0;
- ilOp++;
- for(j=ile-1;j>(ile-1)-(i+1);j--){
- ilOp++;
- if(war>tabZ[j]){przesun(j);tabZ[j]=war;byl=1;ilOp+=ilOpPrze+1;break;}
- }
- if(byl==0){tabZ[(ile-1)-(i+1)]=war;ilOp++;}
- }
- stop=clock();
- czas=stop-start;
- gotoxy(19,3);cout<<czas;
- gotoxy(46,3);cout<<ilOp;
- ilOp=0;
- restartTabZ(); //tab2
- start=clock();
- tabZ[ile-1]=tab2L[ile-1];
- for(int i=0;i<ile-1;i++){
- war=tab2L[i];byl=0;
- ilOp++;
- for(j=ile-1;j>(ile-1)-(i+1);j--){
- ilOp++;
- if(war>tabZ[j]){przesun(j);tabZ[j]=war;byl=1;ilOp+=ilOpPrze+1;break;}
- }
- if(byl==0){tabZ[(ile-1)-(i+1)]=war;ilOp++;}
- }
- stop=clock();
- czas=stop-start;
- gotoxy(28,3);cout<<czas;
- gotoxy(55,3);cout<<ilOp;
- ilOp=0;
- restartTabZ();// tab3
- start=clock();
- tabZ[ile-1]=tab3L[ile-1];
- for(int i=0;i<ile-1;i++){
- war=tab3L[i];byl=0;
- ilOp++;
- for(j=ile-1;j>(ile-1)-(i+1);j--){
- ilOp++;
- if(war>tabZ[j]){przesun(j);tabZ[j]=war;ilOp+=ilOpPrze+1;byl=1;break;}
- }
- if(byl==0){tabZ[(ile-1)-(i+1)]=war;ilOp++;}
- }
- stop=clock();
- czas=stop-start;
- gotoxy(37,3);cout<<czas;
- gotoxy(65,3);cout<<ilOp;
- //for(int i=0;i<ile;i++){tab3[i]=tabZ[i];}
- }
- void tabelka(){
- cout<<"Sortowanie\n\n";
- cout<<"Wybor\n";
- cout<<"Wstawianie\n";
- cout<<"Babelkowe\n";
- cout<<"Babelkowe+\n";
- for(int i=0;i<6;i++){gotoxy(15,i);cout<<"|";gotoxy(45,i);cout<<"|";gotoxy(73,i);cout<<"|";}// pionowe linie
- gotoxy(27,0);cout<<"czas";gotoxy(53,0);cout<<"ilosc operacji"; // 1
- gotoxy(19,1); // 2
- cout<<"Tab1 Tab2 Tab3"; // 2
- gotoxy(48,1); // 2
- cout<<"Tab1 Tab2 Tab3"; // 2
- /*
- Sortowanie | czas | ilosc operacji | 1
- | Tab1 Tab2 Tab3 | Tab1 Tab2 Tab3 | 2
- Wybór | | | 3 (2)
- Wstawianie | | | 4 (3)
- Babelkowe | | | 5 (*)
- Babelkowe+ | | | 6 (*)
- */
- }
- int main(){
- clock_t start, stop;
- tabelka();los();sortujWyb();sortujWst();sortujB();sortujBU();
- system("pause>null");
- }
Advertisement
Add Comment
Please, Sign In to add comment