Soru Algoritma bir değerden sonra çalışmıyor.Sebebi nedir?

Bu konuyu okuyanlar

ertugrul5461

Öğrenci
Katılım
30 Nisan 2022
Mesajlar
1
Reaksiyon puanı
0
Puanları
1
Yaş
22
Kodda görüldüğü üzere 4 adet sıralama algoritmasının çalışma zamanını ölçen bir program yaptım. Program 100000 e kadar doğru bir şekilde çalışıyor fakat 103-104 binden sonra hiç sonuç vermiyor.1 milyona kadar test etmem gerekiyor.Sebebi nedir?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
//#define dizi 100000


float frand() {
return (float) rand() / RAND_MAX;
}

void bubble_sort(int c[],int size)
{
int i,j,t;
for(i=size-2;i>=0;i--)
{
for(j=0;j<=i;j++)
{
if(c[j]>c[j+1])
{
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
}
}
}

void insertion_sort(int *p, int size)
{
int i,j,t;

for (i = 0; ++i < size; ) {
t = p;
for (j = i; p[j - 1] > t; ) {
p[j] = p[j - 1];
if (--j <= 0)
break;
}
p[j] = t;
}
}

void shellSort(int s[], int size)
{
int i, j, increment, temp;
increment = 3;
while (increment > 0)
{
for (i=0; i < size; i++)
{
j = i;
temp = s;
while ((j >= increment) && (s[j-increment] > temp))
{
s[j] = s[j - increment];
j = j - increment;
}
s[j] = temp;
}
if (increment/2 != 0)
increment = increment/2;
else if (increment == 1)
increment = 0;
else
increment = 1;
}
}

void heap_sort (int *p, int size)
{
int left, right, temp;

if (size <= 1)
return;
left = size / 2;
right = size - 1;

while (--left >= 0)
sift(p, left, right);

for (;;) {
temp = p[0];
p[0] = p
;
p
= temp;
if (--right <= 0)
break;
sift(p, 0, right);
}
}

void sift(int *p, int left, int right)
{
int temp, i;

i = left +left +1;
temp = p
;

do {
if (i < right && p < p[i+1])
i++;
if (temp >= p)
break;
p
= p;
left = i;
i = 2 * i + 1;
} while (i <= right);
p
= temp;
}

int main() {

int dizi=100000;

clock_t start, stop;
double duration;
int i,j;
int a[dizi],b[dizi],c[dizi],d[dizi],e[dizi];


srand(time(NULL));
for ( i=0 ; i<dizi ; i++ )
{
a=rand();
b=a;
c=a;
d=a;
e=a;
}

start = clock();
heap_sort(e,dizi);
stop = clock();
duration = (double)(1000 * (stop-start)/CLOCKS_PER_SEC);
printf("Heap Sort ile %d Eleman %f milisaniyede siralandi\n",dizi,duration);

start = clock();
insertion_sort(b, dizi);
stop = clock();
duration = (double)(1000 * (stop-start)/CLOCKS_PER_SEC);
printf("Insertion Sort ile %d Eleman %f milisaniyede siralandi\n",dizi,duration);

start = clock();
bubble_sort(c, dizi);
stop = clock();
duration = (double)(1000 * (stop-start)/CLK_TCK);
printf("Bubble Sort ile %d Eleman %f milisaniyede siralandi\n",dizi,duration);

start = clock();
shellSort(d, dizi);
stop = clock();
duration = (double)(1000 * (stop-start)/CLK_TCK);
printf("Shell Sort ile %d Eleman %f milisaniyede siralandi\n",dizi,duration);

getch();
return 0;
}
 

Son mesajlar

Üst