سی میں qsort() کے ساتھ Arrays کو کیسے ترتیب دیا جائے۔

Sy My Qsort K Sat Arrays Kw Kys Trtyb Dya Jay



چھانٹنا کمپیوٹر پروگرامنگ میں ایک بنیادی عمل ہے، اور اس میں ڈیٹا کو ایک مخصوص ترتیب میں جمع کرنا شامل ہے۔ C میں عناصر کی صف کو ترتیب دینے کا ایک طریقہ استعمال کرنا ہے۔ qsort() فنکشن، جو معیاری لائبریری کا حصہ ہے۔ یہ فنکشن ایک صف، اس کے سائز، اور ایک موازنہ فنکشن کو بطور دلیل لیتا ہے اور پہلے سے طے شدہ طور پر صعودی ترتیب میں ترتیب دیتا ہے۔

یہ رہنما خطوط استعمال کرتے ہوئے صفوں کی ترتیب کو واضح کرتا ہے۔ qsort() C میں فنکشن کرتا ہے اور اسے C مثال کے کوڈز کے ذریعے سمجھنے میں بھی آپ کی مدد کرتا ہے۔

qsort() C میں

سی معیاری لائبریری ہمیں سہولت فراہم کرتی ہے۔ qsort() فنکشن جو صرف صفوں کو ترتیب دینے کے لیے استعمال ہوتا ہے۔ یہ ایک انتہائی بہتر اور تیز فنکشن ہے جو کسی بھی قسم کے ڈیٹا کے ساتھ کام کر سکتا ہے۔







C میں qsort() کا استعمال کرتے ہوئے ہیڈر فائل

دی qsort() طریقہ کار کے اندر بیان کیا گیا ہے۔ stdlib.h ہیڈر فائل، جس کو لاگو کرنے سے پہلے بیان کرنا ضروری ہے۔ qsort() سی پروگرام میں۔



# شامل کریں

qsort() کا اعلان

کا اعلان qsort() فنکشن مندرجہ ذیل ہے:



باطل qsort ( باطل * بنیاد ، عناصر کی_ تعداد ، سائز_کا_عنصر ، comparison_function )

qsort() فنکشن کے پیرامیٹرز

کے پیرامیٹرز qsort() فنکشن ہیں:





بنیاد: ترتیب دینے کے لیے صف کے پہلے عنصر کی طرف اشارہ کریں۔

عناصر کی_ تعداد: ترتیب دینے کے لیے صف میں عناصر کی تعداد۔



سائز_کا_عنصر: صف میں ہر عنصر کے بائٹس میں سائز۔

comparison_function: ایک موازنہ فنکشن کی طرف اشارہ جو عناصر کی ترتیب کی وضاحت کرتا ہے۔

qsort() میں موازنہ فنکشن کیا ہے؟

موازنہ کا فنکشن دو پیرامیٹرز لیتا ہے، دونوں قسم کے const void*، جو کہ ان عناصر کی طرف اشارہ کرتے ہیں جن کا موازنہ کیا جا رہا ہے۔ فنکشن کو 0 سے کم، اس کے برابر، یا اس سے بڑا عدد واپس کرنا چاہیے، اس بات پر منحصر ہے کہ آیا پہلے عنصر کو بالترتیب پہلے، اسی پوزیشن پر، یا دوسرے عنصر کے بعد ترتیب دیا جانا چاہیے۔

Qsort C میں کیسے کام کرتا ہے۔

دی qsort() فنکشن مندرجہ ذیل طریقے سے کام کرتا ہے:

نوٹ: یہاں ہم ایک پر غور کر رہے ہیں۔ int arr[] = {5, 2, 8, 3, 1, 9};

1: ابتدائی طور پر، qsort فنکشن کو درج ذیل پیرامیٹرز کے ساتھ بلایا جائے گا۔

qsort ( arr ، 6 ، کا سائز ( int ) ، comparison_function ) ;

جہاں arr صف کا پوائنٹر ہے، 6 صف میں عناصر کی تعداد ہے، sizeof(int) صف میں موجود ہر عنصر کا سائز ہے، اور comparison_function وہ فنکشن ہے جو اس ترتیب کا تعین کرتا ہے جس میں عناصر کو ترتیب دیا گیا ہے۔

2: qsort فنکشن ایک محور عنصر کو منتخب کرتا ہے۔ آئیے کہتے ہیں کہ یہ منتخب کرتا ہے۔ 3 محور کے طور پر.

3: qsort فنکشن صف کو دو ذیلی صفوں میں تقسیم کرتا ہے: {2, 1} اور {5, 8, 9}۔ پہلی ذیلی صف میں ایسے عناصر ہوتے ہیں جو محور سے کم یا برابر ہوتے ہیں، اور دوسری ذیلی صف میں ایسے عناصر ہوتے ہیں جو محور سے بڑے ہوتے ہیں۔

4: qsort فنکشن ہر ذیلی صفوں پر بار بار خود کو کال کرتا ہے۔

5: qsort فنکشن ہر ذیلی صفوں کے لیے محور کا انتخاب کرتا ہے۔ ہم کہتے ہیں کہ یہ 1 اور 8 کو محور کے طور پر منتخب کرتا ہے۔

6: qsort فنکشن ہر ذیلی صف کو مزید دو ذیلی صفوں میں تقسیم کرتا ہے، اور ان ذیلی صفوں میں سے ہر ایک پر خود کو بار بار کال کرتا ہے۔

7: qsort فنکشن ترتیب شدہ ذیلی صفوں کو دوبارہ ایک ترتیب شدہ صف میں جوڑتا ہے: {1, 2} اور {5, 8, 9} {1, 2, 5, 8, 9} بن جاتے ہیں۔

8: پوری ترتیب شدہ صف واپس آ گئی ہے۔

سی پروگرامنگ میں qsort کا نفاذ

مندرجہ ذیل کوڈ کے نفاذ کو ظاہر کرتا ہے۔ qsort سی پروگرامنگ میں فنکشن۔

# شامل کریں

# شامل کریں

int موازنہ ( const باطل * a1 ، const باطل * b1 )

{

واپسی ( * ( int * ) a1 - * ( int * ) b1 ) ;

}

int مرکزی ( )

{

int میں = 0 ، ایک پر = 6 ;

int صف [ ] = { 5 ، 2 ، 8 ، 3 ، 1 ، 9 } ;

qsort ( صف ، ایک پر ، کا سائز ( int ) ، موازنہ ) ;

printf ( 'qsort() کا استعمال کرتے ہوئے ترتیب کے عناصر ہیں: ' ) ;

کے لیے ( میں = 0 ; میں < ایک پر ; میں ++ ) {

printf ( '%d' ، صف [ میں ] ) ; }

واپسی 0 ;

}

مندرجہ بالا کوڈ میں، سب سے پہلے ایک موازنہ فنکشن دو پیرامیٹرز کے ساتھ بنایا گیا ہے۔ a1 اور b1 . پھر عملدرآمد main() سے شروع ہوتا ہے۔ بنیادی طور پر، ہم دو عدد متغیرات کو i=0 اور num=6 کے طور پر شروع کرتے ہیں۔ پھر ہم چھ عناصر کے ساتھ ایک صف کا اعلان کرتے ہیں۔ {5، 2، 8، 3، 1، 9} . اس کے بعد qsort() صف کی قسم کے تین پیرامیٹرز ہیں، نمبر پیرامیٹر ایک صف کے کل عناصر کو بتاتا ہے، سائز کا (انٹ) صف کے کل سائز سے مراد ہے، اور compare کا استعمال صف کے عناصر کا ایک ایک کرکے موازنہ کرنے کے لیے کیا جاتا ہے۔ پھر اس کا استعمال کرتے ہوئے ترتیب شدہ صف کو پرنٹ کریں۔ printf() سی میں فنکشن

آؤٹ پٹ

نتیجہ

qsort سی پروگرامنگ میں کسی بھی قسم کی صفوں کو چھانٹنے کے لیے ایک طاقتور فنکشن ہے۔ یہ ایک موازنہ فنکشن کی بنیاد پر عناصر کو صعودی یا نزولی ترتیب میں ترتیب دینے کے لیے ایک Quicksort الگورتھم کا استعمال کرتا ہے۔ مندرجہ بالا گائیڈ آپ کو مرحلہ وار کام کرنے کے ساتھ C پروگرامنگ میں qsort کو لاگو کرنے کا ایک آسان طریقہ دکھاتا ہے۔ qsort الگورتھم