السلام عليكم
الصراحة حاولت اليوم أكتب برنامج يحسب الوقت من بدايه عملية ترتيب الأرقام وحتى إنتهائها المشكلة أن المصفوفات التي يقل حجمها عن 9000 لا تظهر النتائج ولعل السبب أن عملية الترتيب تكون بالـ millisecond بينما عندما يكون الحجم 9000 يكون الوقت المستغرق ثانية واحده . المطلوب كيف يمكن أن أجعل بالثواني مثلا عندما ادخل حجم المصفوفة 10 يكون الوقت بالثواني وليس بجز من الثانية millisecond . هل استخدم معادلة للتحويل من الـ millisecond إلى الـ second وماهي أم هناك أمر يفي بالغرض ؟
وهذا هو البرنامج
#include "stdafx.h"
#include<iostream>
#include <stdio.h>
#include<cstdlib>
#include <ctime>
using namespace std;
int main()
{
time_t tStart,tEnd;
double dif;
int* aNumber = NULL;
int iNum;
cout<<"Please, Enter the size of array : ";
cin>>iNum;
aNumber = new int[iNum];
srand(time(NULL));
for(int i = 0; i < iNum; i++)
aNumber = rand() % iNum;
/*cout<<"=== Before Sort ==="<<endl;
for(int iB = 0; iB < iNum; iB++)
cout<<aNumber[iB]<<endl;*/
time (&tStart);
for(int iFl = 0; iFl < iNum; iFl++)
{
for(int iSl = 0; iSl < (iNum - 1); iSl++)
{
if(aNumber[iSl]>aNumber[iSl+1])
{
int temp;
temp = aNumber[iSl];
aNumber[iSl] = aNumber[iSl+1];
aNumber[iSl+1] = temp;
}
}
}
time(&tEnd);
/*cout<<"=== After Sort ==="<<endl;
for(int iA = 0; iA < iNum; iA++)
cout<<aNumber[iA]<<endl;*/
dif = difftime(tEnd,tStart);
printf("It took you %.2lf seconds to type your name.\n", dif );
delete [] aNumber;
aNumber = NULL;
while(1);
return 0;
}وشكرا مقدما