Balanced Merge Sort Algorithm
بسم الله الرحمن الرحيم
إخواني الكرام ::
تحية فلسطينية مقدسية
أريد أن أستفسر على خوارزمية في علم تراكيب البيانات , تسمى Balanced Merge Sort وهي تستخدم لترتيب بيانات داخل ملف
مثلا أنا أمتلك مجموعة بيانات مخزنة داخل ملف بشكل غير مرتب , لذلك أريد ترتيبها وهي في داخل الملف بواسطة تلك الخوارزمية
فأرجوكم أفيدوني في الكود والشرح الخاص بها
وكل التوفيق لنا ولكم
نــــــــــــــــــــــــــــــــحن الذين بايعو مــــــــــــــــــــحمدا||||||||||||||||||||||||||||على الجــــــــــــــــــــــــــــــــــــهاد لا نلين أبدا
نــــــــــــــــــــــــــــــــحن الذين عاهدوه على الهــــــــدى||||||||||||||||||||||||||||نحن دعــــــــــــــــــــــــــــــــاة الله أبطال الفدا
مشاركة: Balanced Merge Sort Algorithm
اقتباس:
المشاركة الأصلية كتبت بواسطة MKCIT
بسم الله الرحمن الرحيم
إخواني الكرام ::
تحية فلسطينية مقدسية
أريد أن أستفسر على خوارزمية في علم تراكيب البيانات , تسمى Balanced Merge Sort وهي تستخدم لترتيب بيانات داخل ملف
مثلا أنا أمتلك مجموعة بيانات مخزنة داخل ملف بشكل غير مرتب , لذلك أريد ترتيبها وهي في داخل الملف بواسطة تلك الخوارزمية
فأرجوكم أفيدوني في الكود والشرح الخاص بها
وكل التوفيق لنا ولكم
نــــــــــــــــــــــــــــــــحن الذين بايعو مــــــــــــــــــــحمدا||||||||||||||||||||||||||||على الجــــــــــــــــــــــــــــــــــــهاد لا نلين أبدا
نــــــــــــــــــــــــــــــــحن الذين عاهدوه على الهــــــــدى||||||||||||||||||||||||||||نحن دعــــــــــــــــــــــــــــــــاة الله أبطال الفدا
السلام عليكم
اكيد انت تعرف فكرتها ...
انااول مرة اسمع بهذه الخوارزم ...
اعطيني مثال حي .. لكي اساعدك في الكود ^^
ولي رجعة ان شاء الله ^^ .
بس قلي متى اخر موعد لك ؟؟؟
وشكرا
هامش:
حبي لكم ... يا اهل فلسطين
مشاركة: Balanced Merge Sort Algorithm
شكرا أخي جافا لا طلاعك على استفساري , وأنا كما أمرت قد وضعت مثال لذلك ...
فترض أنه يوجد ملف اسمه data.txt يحتوي البيانات التالية ::
20,8,5,17,21,9,3,11,2,18,15,23,14,6,15,24,10,21,13,16,19,15,22,20,
1,26,4,15,7
السؤال :: كيف أستطيع أن أقوم في كل مرة بقراءة 4 بيانات من الملف و أقوم بتخزينها في Array ؟
أي أن أقوم بقراءة البيانات من البداية , مثلا : أقوم بقراءة 20 , 8 , 5 , 17
وأخزنها في Array وبعدها يتم ترتيبها وبعدها أقوم بقراءة 21 , 9 , 3 ,11 وأخزنها في نفس Array السابقة و أقوم بترتيبها أيضا ... وهكذا حتى تنتهي البيانات كلها
أهم المشاكل التي تواجهني ::
1- أني لا أعرف كيف أصنع ملف قابل للقراءة والكتابة , ولا أعرف حتى كيف يمكن القراءة والكتابة منه و إليه
2-أني لا أعرف كيف أحدد بيانات معينة من داخل الملف (مثلا 4 بيانات كما في المثال) (هذه هي المشكلة الرئيسية)
مشاركة: Balanced Merge Sort Algorithm
مممممممم ...
بالسي++ هاه ....
طيب ... اذا فضيت اعملك برنامجك ^^ ..
بس قول متى تبيه انت ؟
مشاركة: Balanced Merge Sort Algorithm
شكرا أخي حمزة لمتابعتك معي
وأسأل الله تعالى لك ولي صلاة في القدس الشريف ...............
اللغة التي أحتاجها : أنا أفضل أن تكون بلغة الجافا
ملاحظة :: أنا طالب في كلية هندسة الحاسوب وتكنولوجيا المعلومات في أحد الجامعات الفلسطينية و أقوم بعمل مشروع في الجامعة وهذا المشروع يتضمن الخوارزمية التي تحدثت عنها في السابق , أي أنها ليست كل البرنامج ....
لذلك أنا أحتاج البرنامج على الأكثر خلال يومين أو ثلاثة
وكل الشكر والتوفيق لك أخي حمزة (أبو الإسلام) المعروف ب جافا
مشاركة: Balanced Merge Sort Algorithm
i can help u with
Sorting with Bubble Sort algorithm
sorry codes in MatLab ( similat to C)
k=length(A)
%% A is the array before sorting
for i=1:k-1
for j=i+1:k
if A(i)>A(j)
temp=A(i)
A(i)=A(j)
A(j)=temp
end
end
مشاركة: Balanced Merge Sort Algorithm
اففففففف افففففففف اففففففففففف ...
نفسي كان اساعدك لكن والله مضغوووووووووط لدرجة كبيرة ....
يومين ثلاث مابيكفوني ...
لكن احاول .. واذا ما قدرتش ... سامحني ارجووووك ,,,
وانا حاليا ما عندي الا سي++ .....
اشوف اذا قدرت اعمل ولو شيء بسيط .. والا فاعذرني
مشاركة: Balanced Merge Sort Algorithm
أشكركما كل من أخي جافا و محمود
لكن أطلب منكما على الأقل أن تساعداني في كيفية حفظ بيانات إلى ملف , وكيف أقوم بقراءة عدد محدد من البيانات من تلك الملفات في كل مرة ....
مشاركة: Balanced Merge Sort Algorithm
اقتباس:
المشاركة الأصلية كتبت بواسطة MKCIT
أشكركما كل من أخي جافا و محمود
لكن أطلب منكما على الأقل أن تساعداني في كيفية حفظ بيانات إلى ملف , وكيف أقوم بقراءة عدد محدد من البيانات من تلك الملفات في كل مرة ....
طيب .. ينفع سي++ ...؟؟
انا عندي االان بعض الامثلة الجاهزة بالسي++ ... اما امثلة الجافا ..
يخلف الله ,,
خذ امثلة السي++ الان .. وخليها على الله ...
برنامج على الطاير .. كتابة على الملف ... يعني تدخل ارقام .. ويرتبها لك .. ويكتبها لك في الملف ..
كود:
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
main()
{
struct qalet
{ int i, num;
float t;
};
ofstream out("outfile.dat",ios::binary) ;
if(!out){ cout<<"not open\n";exit(1);}
qalet blank ={0,0.0} ;
for (int i=0 ;i<100;i++)
out.write(reinterpret_cast<const char*>(&blank),sizeof(qalet));
out.close();
qalet q[100];
float temp,s;
for( i=0;i<=6;i++)
cin>>q[i].num>>q[i].t;
do{
s=1;
for(i=0;i<=5;i++)
{
if(q[i].t>q[i+1].t)
{
temp=q[i].t;
q[i].t=q[i+1].t;
q[i+1].t=temp;
s=0;
}
}
}while(s==0);
for(i=0;i<=6;i++)
{
out.seekp((q[i].num-1)* sizeof(qalet));
out.write(reinterpret_cast<const char*>(&q),sizeof(qalet));
cout<<i+1<<" the num "<<q[i].num<<" The time "<<q[i].t<<"\n";
}
out.close();
}
مشاركة: Balanced Merge Sort Algorithm
هذا للقرائة من الملف ... اعتقد نفس اسم الملف الي في البرنامج السابق ..
كود:
#include<iostream.h> #include<fstream.h>
#include<stdlib.h>
void main()
{
struct customer_record
{
int customer_no;
char firstname[10];
char lastname[10];
float weight;
float cost;
};
int n;
ofstream outcust("customer_record.dat",ios::binary);
if(!outcust)
{
cerr<<"file could not be opened"<<endl;
exit(1);
}
customer_record blankcust={0,"","",0.0,0.0};
cout<<"Enter the number of customer_record"<<endl;
cin>>n;
for(int i=0;i<n;i++)
outcust.write(reinterpret_cast<const char *>(& blankcust),sizeof(customer_record));
outcust.seekp(0);
customer_record cust ;
cout<<"Enter customer_record number "<<endl;
cin>>cust.customer_no;
while( cust.customer_no > 0 && cust.customer_no <= n )
{
cout<<"Enter firstname,lastname,weight of car \n";
cin>>cust.firstname>>cust.lastname>>cust.weight;
if(cust.weight > 2000)
cust.cost= 30* cust.weight;
else if(cust.weight > 1500)
cust.cost= 25* cust.weight;
else if( cust.weight > 1000)
cust.cost= 20* cust.weight;
else
cust.cost= 10* cust.weight;
outcust.seekp((cust.customer_no-1)*sizeof(customer_record));
cout<<"Enter customer_record number "<<endl;
cin>>cust.customer_no ;
}
outcust.close();
}