हेल्लो दोस्तों! आज हम इस article में Shell Sort in Hindi (शैल सॉर्ट क्या है?) के बारें में पढेंगे और इसके example को भी देखेंगे तो चलिए शुरू करते हैं.
Shell Sort in Hindi
Shell Sort बहुत ही ज्यादा efficient (कुशल) sorting एल्गोरिथम है और यह insertion sort एल्गोरिथम पर आधारित है. इस algorithm में सबसे पहले उन elements को sort किया जाता है जो एक दूसरे से बहुत दूरी में होते हैं.
इसमें अगर कोई छोटा element दूर दाई ओर (far right side) में है तो उसे far left में लाया जाता है. यह अल्गोरिथ्म बहुत दूरी के elements में insertion sort का प्रयोग करती है. सबसे पहले ज्यादा दूरी के elements को sort किया जाता है फिर इसके बाद कम दूरी के elements को sort किया जाता है. इस दूरी को interval कहा जाता है और इस interval को कैलकुलेट करने के लिए हम निम्नलिखित formula का प्रयोग करते हैं.
Formula :-
interval = array length/ 2
interval को निकालने के लिए हम array की length को 2 से divide कर देंगे.
Shell Sort का example:-
नीचे की youtube video में आप इसके उदाहरण को आसानी से सीख सकते हैं. आप इस video को जरुर देखें.
Shell short algorithm
इसकी अल्गोरिथ्म निम्नलिखित है:-
shellSort(array, size)
for interval i <- size/2n down to 1
for each interval "i" in array
sort all the elements at interval "i"
end shellSort
इसकी Complexity –
- Worst case complexity – O(n2)
- Best case complexity – O(n*log n)
- Average case complexity – O(n*log n)
- Space complexity – O(1)
C language program –
इसका C लैंग्वेज का प्रोग्राम निम्नलिखित है:-
for (int interval = n / 2; interval > 0; interval /= 2) {
for (int i = interval; i < n; i += 1) {
int temp = array[i];
int j;
for (j = i; j >= interval && array[j - interval] > temp; j -= interval) {
array[j] = array[j - interval];
}
array[j] = temp;
}
}
}
void printArray(int array[], int size) {
for (int i = 0; i < size; ++i) {
printf("%d ", array[i]);
}
printf("\n");
}
int main() {
int data[] = {9, 8, 3, 7, 5, 6, 4, 1};
int size = sizeof(data) / sizeof(data[0]);
shellSort(data, size);
printf("Sorted array: \n");
printArray(data, size);
}
निवेदन:- अगर आपको यह पोस्ट पसंद आई हो तो इसे अपने friends के साथ अवश्य share कीजिये और आपके जो भी questionns हैं उन्हें नीचे कमेंट के माध्यम से अवश्य बताइए. धन्यवाद.