Kezdőoldal » Számítástechnika » Programozás » Tanárom küldött rendezéseket...

Tanárom küldött rendezéseket C++ -ban de nem fut le. Miért nem?

Figyelt kérdés

#include <iostream>

#include <time.h>

#include <stdlib.h>


using namespace std;


void BuborekRendezes(int* szamok, int N){

for (int j=0;j<N;j++){

for (int i=0;i<N-1;i++){

if (szamok[i]>szamok[i+1]){

int s = szamok[i];

szamok[i] = szamok[i+1];

szamok[i+1] = s;

}

}

}

}


void EgyszeruCseresRendezes(int* szamok, int N){

for (int j=0;j<N;j++){

for (int i=j;i<N;i++){

if (szamok[j]>szamok[i]){

int s = szamok[j];

szamok[j] = szamok[i];

szamok[i] = s;

}

}

}

}


void BeillesztesesRendezes(int* szamok, int N){

for (int ezmarrendezvevan = 1; ezmarrendezvevan<N; ezmarrendezvevan++)

{

int szamhelye = ezmarrendezvevan;

while (szamok[szamhelye] < szamok[szamhelye-1]){

int tmp = szamok[szamhelye-1];

szamok[szamhelye-1] = szamok[szamhelye];

szamok[szamhelye] = tmp;

szamhelye--;

if (szamhelye==0) break;

}

}

}


void MinimumKivalasztasosRendezes(int* szamok, int N){

for (int j=0;j<N-1;j++){

int minimumhely = j;

for (int i=j+1;i<N;i++){

if (szamok[i]<szamok[minimumhely])

minimumhely = i;

}

int s = szamok[j];

szamok[j] = szamok[minimumhely];

szamok[minimumhely] = s;

}

}


int main(){

//system("format c:");

srand(time(0));

int N = 1000; //tömb elemeinek száma

int k = 10000; //teszesetek száma

int randomMax = 10000; //számok generálása 1 és randomMax között


int szamok[N];


//-------------------------------------------------------------------------------


int ekkorindultunk = time(0);

for (int i=0;i<k;i++){

for (int j=0;j<N;j++){

szamok[j] = rand()%randomMax+1;

}

BuborekRendezes(szamok, N);

}

int ekkorfejeztukbe = time(0);

cout << "Buborekrendezes futasanak ideje: " << (ekkorfejeztukbe-ekkorindultunk) << endl;


//-------------------------------------------------------------------------------


ekkorindultunk = time(0);

for (int i=0;i<k;i++){

for (int j=0;j<N;j++){

szamok[j] = rand()%randomMax+1;

}

EgyszeruCseresRendezes(szamok, N);

}

ekkorfejeztukbe = time(0);

cout << "Egyszeru cseres rendezes futasanak ideje: " << (ekkorfejeztukbe-ekkorindultunk) << endl;


//-------------------------------------------------------------------------------


ekkorindultunk = time(0);

for (int i=0;i<k;i++){

for (int j=0;j<N;j++){

szamok[j] = rand()%randomMax+1;

}

BeillesztesesRendezes(szamok, N);

}

ekkorfejeztukbe = time(0);

cout << "Beilleszteses rendezes futasanak ideje: " << (ekkorfejeztukbe-ekkorindultunk) << endl;


//-------------------------------------------------------------------------------


ekkorindultunk = time(0);

for (int i=0;i<k;i++){

for (int j=0;j<N;j++){

szamok[j] = rand()%randomMax+1;

}

MinimumKivalasztasosRendezes(szamok, N);

}

ekkorfejeztukbe = time(0);

cout << "Minimumkivalasztasos rendezes futasanak ideje: " << (ekkorfejeztukbe-ekkorindultunk) << endl;


//-------------------------------------------------------------------------------


return 0;

}


2016. febr. 26. 23:18
1 2
 11/13 anonim ***** válasza:

Lassan fordult le, vagy sokáig nem írt ki semmit?

Az utóbbi teljesen normális, pont az a program lényege, hogy megmutassa a rendezések időigényének különbségét. Ennek nincs sok értelme, ha tizedmásodpercek alatt lefut a program

2016. febr. 27. 10:29
Hasznos számodra ez a válasz?
 12/13 A kérdező kommentje:
Sokáig nem írt ki semmit, aztán hirtelen megjelent az összes kiírás, amit linkeltetek képeken van.
2016. febr. 27. 11:06
 13/13 anonim ***** válasza:

#10:

"A szabvány csak azt mondja ki, hogy a tömbök méretét fordítási időben tudni kell."


Te melyik szabványban olvastad ezt? Az van kimondva hogy konstans kifejezésnek kell lennie. A C++ nem engedi meg a VLA-t, az csak C99-ben volt, de már C11-ben nem szerepel. C++ soha nem engedte meg és C++14-ben sincs ilyen. Az csak a gcc kiterjesztése. A kifejezés hibás.


Azok akik pedig leszavazták a #8-as válaszolót, örülnék ha megmagyaráznák hogy miért.

2016. febr. 27. 18:21
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!