DATA PART Selection Sort – Algorithm and Function

DATA PART Selection Sort – Algorithm and Function in Hindi – किसी Linked List की Sorting के लिए हम Selection Sort Method का भी प्रयोग कर सकते हैं। Selection Sort का Algorithm निम्नानुसार लिखा जा सकता है-

Selection Sort Algorithm DATA PART

  • P = START
  • REPEAT FOR I = 0 TO N-1 STEP I = I + 1
  • Q = P[LINK]
  • REPEAT FOR J = I + 1 TO J < N STEP J = J + 1
  • IF P[INFO] > Q[INFO]
  • TEMP = P[INFO]
  • P[INFO] = Q[INFO]
  • Q[INFO] = TEMP

            [ End of IF Structure ]

  • Q = Q[LINK]

            [ End of Inner Loop ]

  • P = P[INFO]

      [ End of Outer Loop ]

  • EXIT

इस Algorithm का उपयोग करके हम निम्नानुसार Selection Sort का Function लिख सकते हैं-

Selection Sort Function DATA PART

[code]
void LLSelectionSortDP(int N)
{
      int I, J, K, TEMP;
      struct LIST *P, *Q;
      P = START;
      for(I=0; I<N-1; I++)
      {
            Q = START->LINK;
            for(J=I+1; J<N; J++)
            {
                  if(P->INFO > Q->INFO)
                  {
                        TEMP = P->INFO;
                        P->INFO = Q->INFO;
                        Q->INFO = TEMP;
                  }
            Q = Q->LINK;
      }
      P = P->LINK;
}
[/code]

हम देख सकते हैं Array Data Structure व Linked List Data Structure दोनों में ही Sorting के Algorithm समान ही हैं। केवल लिखे जाने वाले Syntax में ही अन्तर होता है। ये दोनों Functions NODES के INFO Part की Exchanging पर आधारित हैं। यानी इस Sorting में हमें Node के INFO Part की Exchanging करनी पडती है।

चूंकि Linked List Data Structure के INFO Part में एक से अधिक Fields हो सकते हैं। ऐसे में यदि हम इस तरीके को Use करते हैं तो हमें INFO Fields के सभी Data Elements को Exchange करना पडता है। जैसे मानलो कि निम्नानुसार एक Structure है जिसके INFO Part में किसी Book की विभिन्न Information हैं।

Structure

[code]
struct Book
{
      char name[20];
      int price;
      int pages;
      int isbn_no;
};
[/code]

यदि इस Structure के विभिन्न Nodes की Sorting करनी हो तो हमें निम्नानुसार Exchanges करने होंगे-

[code]
Outlines:
//Exchanging of Data Part
strcpy(TEMP.name, P->name);
strcpy(P->name, Q->name);
strcpy(Q->name, TEMP.name);
TEMP.price = P->price;
P->price = Q->price;
Q->price = TEMP.price;
TEMP.pages = P->pages;
P->pages = Q->pages;
Q->pages = TEMP.pages;
TEMP.isbn_no = P->isbn_no;
P->isbn_no = Q->isbn_no;
Q->isbn_no = TEMP.isbn_no;
[/code]

हम समझ सकते हैं कि INFO Part में जितने अधिक Data Items होंगे, हमें उतने ही ज्यादा Exchanges करने पडेंगे। लेकिन इस समस्या से बचने का एक तरीका है और वह ये है कि हम INFO Part के Data Items को Exchange करने के बजाय उनके LINK Part के LINK को Exchange कर दें।

Linked Lists Sorting - Bubble Sort Algorithm
Bubble Sort using LINK PART - Algorithm and Function

Data Structure and Algorithmes in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF

BUY NOW GET DEMO REVIEWS