Python क्रमवारी: Python मध्ये क्रमवारी पद्धती आणि अल्गोरिदम

पायथॉनमधील विविध क्रमवारी पद्धती आणि अल्गोरिदम वापरून याद्या, अॅरे, शब्दकोश इत्यादी क्रमवारी लावण्यासाठी पायथन सॉर्ट फंक्शन कसे वापरायचे ते जाणून घ्या:

सॉर्टिंग हे एक तंत्र आहे जे क्रमवारी लावण्यासाठी वापरले जाते. डेटा क्रमाने चढत्या किंवा उतरत्या क्रमाने.

बहुतेक वेळा मोठ्या प्रकल्पांचा डेटा योग्य क्रमाने लावला जात नाही आणि त्यामुळे आवश्यक डेटा कार्यक्षमतेने ऍक्सेस करताना आणि आणताना समस्या निर्माण होतात.

या समस्येचे निराकरण करण्यासाठी वर्गीकरण तंत्र वापरले जाते. पायथन विविध वर्गीकरण तंत्र प्रदान करतो उदाहरणार्थ, बबल सॉर्ट, इन्सर्टेशन सॉर्ट, मर्ज सॉर्ट, क्विकसॉर्ट इ.

या ट्युटोरियलमध्ये, विविध अल्गोरिदम वापरून पायथनमध्ये सॉर्टिंग कसे कार्य करते हे आपण समजू.

पायथन क्रमवारी

0>

पायथन क्रमवारीचे वाक्यरचना

सॉर्टिंग करण्यासाठी, पायथन बिल्ट-इन फंक्शन प्रदान करते म्हणजे “सॉर्ट()” फंक्शन. याचा वापर सूचीतील डेटा घटकांची चढत्या क्रमाने किंवा उतरत्या क्रमाने क्रमवारी लावण्यासाठी केला जातो.

ही संकल्पना उदाहरणासह समजून घेऊ.

उदाहरण 1:

``` a = [ 3, 5, 2, 6, 7, 9, 8, 1, 4 ] a.sort() print( “ List in ascending order: ”, a ) ``` 

आउटपुट:

या उदाहरणात, दिलेली अक्रमित सूची “ क्रमवारी ( ) ” फंक्शन वापरून चढत्या क्रमाने लावली जाते .

उदाहरण 2:

``` a = [ 3, 5, 2, 6, 7, 9, 8, 1, 4 ] a.sort( reverse = True ) print( “ List in descending order: ”, a ) ``` 

आउटपुट

वरील उदाहरणात, दिलेली अक्रमित यादी “ sort( reverse = True ) ” फंक्शन वापरून उलट क्रमाने क्रमवारी लावली जाते.

वेळठिकाण बबल क्रमवारी O(n) O(n2) O(n2) O(1) होय होय इन्सर्शन क्रमवारी 42 O(n) O(n2) O(n2) O(1) होय होय त्वरित क्रमवारी O(n log(n)) O(n log(n)) O(n2) O(N) नाही होय विलीन करा क्रमवारी लावा O(n log(n)) O(n log(n)) O(n log(n)) O(N) होय नाही हीप क्रमवारी O(n लॉग (n)) O(n log(n)) O(n log(n)) O(1) नाही होय

वरील तुलना सारणीमध्ये “O” हे वर स्पष्ट केलेले बिग ओह नोटेशन आहे तर “n” आणि “N” म्हणजे इनपुटचा आकार .

वारंवार विचारले जाणारे प्रश्न

प्रश्न #1) पायथनमध्ये क्रमवारी () म्हणजे काय?

उत्तर: पायथनमध्ये sort() हे एक फंक्शन आहे जे विशिष्ट क्रमाने सूची किंवा अॅरे क्रमवारी लावण्यासाठी वापरले जाते. हे फंक्शन मोठ्या प्रकल्पांवर काम करताना वर्गीकरणाची प्रक्रिया सुलभ करते. हे विकसकांसाठी खूप उपयुक्त आहे.

प्रश्न #2) तुम्ही Python मध्ये कसे क्रमवारी लावता?

उत्तर: पायथन विविध क्रमवारी तंत्रे प्रदान करते ज्याचा वापर घटकांची क्रमवारी लावण्यासाठी केला जातो. उदाहरणार्थ, क्विक सॉर्ट, मर्ज सॉर्ट, बबल सॉर्ट, इन्सर्शन सॉर्ट, इ. सर्व सॉर्टिंग तंत्रे कार्यक्षम आणि समजण्यास सोपी आहेत.

प्रश्न #3) पायथन कसा होतो क्रमवारी () काम?

उत्तर: क्रमवारी()फंक्शन दिलेल्या अॅरेला वापरकर्त्याकडून इनपुट म्हणून घेते आणि सॉर्टिंग अल्गोरिदम वापरून विशिष्ट क्रमाने क्रमवारी लावते. अल्गोरिदमची निवड वापरकर्त्याच्या निवडीवर अवलंबून असते. वापरकर्ते वापरकर्त्याच्या गरजेनुसार क्विक सॉर्ट, मर्ज सॉर्ट, बबल सॉर्ट, इन्सर्शन सॉर्ट इत्यादी वापरू शकतात.

निष्कर्ष

वरील ट्युटोरियलमध्ये, आम्ही पायथनमधील सॉर्ट तंत्रासोबत चर्चा केली. सामान्य वर्गीकरण तंत्र.

  • बबल सॉर्ट
  • इन्सर्टेशन सॉर्ट
  • क्विक सॉर्ट

आम्ही त्यांच्या वेळेची गुंतागुंत आणि फायदे जाणून घेतले & तोटे. आम्ही वरील सर्व तंत्रांची तुलना देखील केली.

सॉर्टिंग अल्गोरिदमची जटिलता

वेळ जटिलता म्हणजे संगणकाने विशिष्ट अल्गोरिदम चालवण्यासाठी लागणारा वेळ. यात तीन प्रकारची वेळ गुंतागुंतीची प्रकरणे आहेत.

  • सर्वात वाईट परिस्थिती: संगणकाने प्रोग्राम चालवण्यासाठी लागणारा कमाल वेळ.
  • सरासरी केस: प्रोग्राम रन करण्यासाठी संगणकाने किमान आणि कमाल दरम्यान घेतलेला वेळ.
  • सर्वोत्तम केस: प्रोग्राम रन करण्यासाठी संगणकाला लागणारा किमान वेळ. हे वेळेच्या जटिलतेचे सर्वोत्कृष्ट उदाहरण आहे.

कॉम्प्लेक्सिटी नोटेशन्स

बिग ओह नोटेशन, ओ: बिग ओह नोटेशन ही वरची सीमा व्यक्त करण्याचा अधिकृत मार्ग आहे अल्गोरिदमच्या चालू वेळेची. हे सर्वात वाईट-केस वेळेची जटिलता मोजण्यासाठी वापरले जाते किंवा आम्ही अल्गोरिदमने पूर्ण होण्यासाठी घेतलेला सर्वात मोठा वेळ म्हणतो.

बिग ओमेगा नोटेशन, : बिग ओमेगा नोटेशन आहे अल्गोरिदमच्या धावण्याच्या वेळेची सर्वात कमी मर्यादा सांगण्याचा अधिकृत मार्ग. हे सर्वोत्कृष्ट-केस वेळेची जटिलता मोजण्यासाठी वापरले जाते किंवा अल्गोरिदमने घेतलेला उत्कृष्ट वेळ आम्ही म्हणतो.

थेटा नोटेशन, : थीटा नोटेशन हे व्यक्त करण्याचा अधिकृत मार्ग आहे अल्गोरिदमने पूर्ण होण्यासाठी घेतलेल्या वेळेच्या खालच्या आणि वरच्या दोन्ही सीमा.

पायथॉनमधील क्रमवारी पद्धती

बबल सॉर्ट

बबल सॉर्ट हा डेटा क्रमवारी लावण्याचा सर्वात सोपा मार्ग आहे जे ब्रूट फोर्स तंत्र वापरते. ते प्रत्येक डेटा घटकाशी पुनरावृत्ती करेल आणि इतर घटकांशी तुलना करेलवापरकर्त्याला क्रमवारी लावलेला डेटा प्रदान करण्यासाठी.

हे तंत्र समजून घेण्यासाठी एक उदाहरण घेऊ:

  • आम्हाला एक अॅरे दिलेला आहे ज्यामध्ये घटक आहेत 10, 40, 7, 3, 15”. आता, आपल्याला पायथनमधील बबल सॉर्ट तंत्राचा वापर करून ही अॅरे चढत्या क्रमाने मांडण्याची गरज आहे.
    • पहिली पायरी म्हणजे दिलेल्या क्रमाने अ‍ॅरेची मांडणी करणे.
    • “ पुनरावृत्ती 1 ” मध्ये, आपण अ‍ॅरेच्या पहिल्या घटकाची तुलना इतर घटकांशी एक-एक करत आहोत.
    • लाल बाण अॅरेच्या इतर घटकांसह पहिल्या घटकांची तुलना वर्णन करत आहेत.
    • जर तुम्हाला लक्षात आले की " 10 " " 40 " पेक्षा लहान आहे, तर ते सारखेच राहते ठेवा पण पुढील घटक “7” “10” पेक्षा लहान आहे. त्यामुळे ते बदलले जाते आणि प्रथम स्थानावर येते.
    • घटकांची क्रमवारी लावण्यासाठी वरील प्रक्रिया पुन्हा पुन्हा केली जाईल.

    • “ पुनरावृत्ती 2 ” मध्ये दुसऱ्या घटकाची तुलना अॅरेच्या इतर घटकांशी केली जात आहे.
    • तुलना केलेला घटक लहान असल्यास, तो बदला, अन्यथा ते त्याच ठिकाणी राहील.

    • " पुनरावृत्ती 3 " मध्ये तिसरा घटक अॅरेच्या इतर घटकांशी तुलना करत आहे.

    • शेवटी " पुनरावृत्ती 4 " दुसरा शेवटचा घटक अॅरेच्या इतर घटकांशी तुलना करत आहे.
    • मध्येया चरणात अॅरे चढत्या क्रमाने क्रमवारी लावली जाते.

बबल क्रमवारीसाठी प्रोग्राम

``` def Bubble_Sort(unsorted_list): for i in range(0,len(unsorted_list)-1): for j in range(len(unsorted_list)-1): if(unsorted_list[j]>unsorted_list[j+1]): temp_storage = unsorted_list[j] unsorted_list[j] = unsorted_list[j+1] unsorted_list[j+1] = temp_storage return unsorted_list unsorted_list = [5, 3, 8, 6, 7, 2] print("Unsorted List: ", unsorted_list) print("Sorted List using Bubble Sort Technique: ", Bubble_Sort(unsorted_list)) ``` 

आउटपुट

बबल क्रमवारीची वेळ जटिलता

  • सर्वात वाईट परिस्थिती: बबल सॉर्टसाठी सर्वात वाईट वेळ जटिलता O( n 2) आहे.
  • सरासरी केस: बबल सॉर्टसाठी सरासरी वेळ जटिलता O(4) आहे>n 2).
  • सर्वोत्तम प्रकरण: बबल क्रमवारीसाठी सर्वोत्तम वेळ जटिलता O(n) आहे.

फायदे

  • हे अधिकतर वापरले जाते आणि ते अंमलात आणणे सोपे आहे.
  • आम्ही अल्प-मुदतीच्या स्टोरेजचा वापर न करता डेटा घटकांची अदलाबदल करू शकतो.
  • यासाठी कमी आवश्यक आहे स्पेस.

तोटे

  • मोठ्या संख्येने मोठ्या डेटा घटकांशी व्यवहार करताना ती चांगली कामगिरी करू शकली नाही.
  • ते क्रमवारी लावण्यासाठी प्रत्येक “n” संख्येच्या डेटा घटकांसाठी n 2 चरणांची आवश्यकता आहे.
  • हे वास्तविक-जागतिक अनुप्रयोगांसाठी खरोखर चांगले नाही.

अंतर्भूत क्रमवारी लावा

इन्सर्शन सॉर्ट हे सोप्या आणि सोप्या क्रमवारीचे तंत्र आहे जे प्लेइंग कार्ड्सच्या क्रमवारी प्रमाणेच कार्य करते. इन्सर्शन सॉर्ट प्रत्येक घटकाची एकमेकांशी एक-एक करून तुलना करून घटकांची क्रमवारी लावते. घटक इतर घटकांपेक्षा मोठे किंवा लहान असल्यास ते निवडले जातात आणि इतर घटकांसह बदलले जातात.

एक उदाहरण घेऊ

  • आम्हाला प्रदान केले आहे “ 100, 50, 30, 40, 10” घटक असलेले अॅरे.
  • प्रथम, आम्ही अॅरे व्यवस्थित करतो आणि तुलना करणे सुरू करतो.ते.
  • पहिल्या चरणात “100” ची तुलना दुसऱ्या घटकाशी केली जाते “50”. “50” ची अदलाबदली “100” सह केली जाते कारण ती मोठी आहे.
  • दुसऱ्या पायरीमध्ये, पुन्हा दुसरा घटक “100” ची तुलना तिसऱ्या घटकाशी केली जाते “30” आणि स्वॅप केले जाते.
  • आता, जर तुमच्या लक्षात आले की “३०” पहिल्या स्थानावर येते कारण ते पुन्हा “५०” पेक्षा लहान आहे.
  • तुलना अॅरेच्या शेवटच्या घटकापर्यंत होईल आणि शेवटी, आम्हाला मिळेल. क्रमवारी लावलेला डेटा.

निवेश क्रमवारीसाठी प्रोग्राम

``` def InsertionSort(array): for i in range(1, len(array)): key_value = array[i] j = i-1 while j >= 0 and key_value  array[j] : array[j + 1] = array[j] j -= 1 array[j + 1] = key_value array = [11, 10, 12, 4, 5] print("The unsorted array: ", array) InsertionSort(array) print ("The sorted array using the Insertion Sort: ") for i in range(len(array)): print (array[i]) ``` 

आउटपुट

0

समावेश क्रमवारीची वेळ जटिलता

  • सर्वात वाईट परिस्थिती: निविष्टीकरण क्रमवारीसाठी सर्वात वाईट वेळ जटिलता O( n 2).
  • सरासरी केस: इन्सर्शन सॉर्टसाठी सरासरी वेळ जटिलता O( n 2) आहे.
  • सर्वोत्कृष्ट केस: इन्सर्शन सॉर्टसाठी सर्वोत्तम वेळ जटिलता O(n) आहे.

फायदे

  • हे सोपे आहे आणि अंमलात आणणे सोपे आहे.
  • थोड्या संख्येने डेटा घटक हाताळताना ते चांगले कार्य करते.
  • त्याच्या अंमलबजावणीसाठी अधिक जागेची आवश्यकता नाही.

तोटे

  • डेटा घटकांची मोठ्या संख्येने क्रमवारी लावणे उपयुक्त ठरत नाही.
  • इतर क्रमवारी तंत्रांशी तुलना केल्यास ते चांगले कार्य करत नाही.

मर्ज सॉर्ट

ही वर्गीकरण पद्धत घटकांची विशिष्ट क्रमाने क्रमवारी लावण्यासाठी विभाजन आणि विजय पद्धत वापरते. मर्ज सॉर्टच्या मदतीने वर्गीकरण करताना, दघटक अर्ध्या भागात विभागले जातात आणि नंतर त्यांची क्रमवारी लावली जाते. सर्व अर्ध्या भागांची क्रमवारी लावल्यानंतर, एक परिपूर्ण क्रम तयार करण्यासाठी घटक पुन्हा जोडले जातात.

हे तंत्र समजून घेण्यासाठी एक उदाहरण घेऊया

  • आम्हाला प्रदान केले आहे अॅरे “7, 3, 40, 10, 20, 15, 6, 5”. अॅरेमध्ये 7 घटक असतात. जर आपण ते अर्ध्यामध्ये विभागले ( 0 + 7 / 2 = 3 ).
  • दुसऱ्या चरणात, तुम्हाला दिसेल की घटक दोन भागात विभागलेले आहेत. प्रत्येकामध्ये 4 घटक असतात.
  • पुढे, घटक पुन्हा विभाजित केले जातात आणि प्रत्येकामध्ये 2 घटक असतात.
  • अ‍ॅरेमध्ये फक्त एक घटक उपस्थित होईपर्यंत ही प्रक्रिया सुरू राहील. चरण क्र. पहा. चित्रात 4.
  • आता, आपण घटकांची क्रमवारी लावू आणि जसे आपण विभाजित केले तसे त्यांना जोडण्यास सुरुवात करू.
  • चरण क्र. 5 जर तुमच्या लक्षात आले की 7 हे 3 पेक्षा मोठे आहे, तर आम्ही त्यांची देवाणघेवाण करू आणि पुढील चरणात त्यात सामील होऊ आणि त्याउलट.
  • शेवटी, तुमच्या लक्षात येईल की आमची अॅरे चढत्या क्रमाने क्रमवारी लावली जात आहे.

मर्ज क्रमवारीसाठी प्रोग्राम

``` def MergeSort(arr): if len(arr) > 1: middle = len(arr)//2 L = arr[:middle] R = arr[middle:] MergeSort(L) MergeSort(R) i = j = k = 0 while i  len(L) and j  len(R): if L[i]  R[j]: arr[k] = L[i] i += 1 else: arr[k] = R[j] j += 1 k += 1 while i  len(L): arr[k] = L[i] i += 1 k += 1 while j  len(R): arr[k] = R[j] j += 1 k += 1 def PrintSortedList(arr): for i in range(len(arr)): print(arr[i],) print() arr = [12, 11, 13, 5, 6, 7] print("Given array is", end="\n") PrintSortedList(arr) MergeSort(arr) print("Sorted array is: ", end="\n") PrintSortedList(arr) ``` 

आउटपुट

मर्ज क्रमवारीची वेळ जटिलता

  • सर्वात वाईट परिस्थिती: मर्ज क्रमवारीसाठी सर्वात वाईट वेळ जटिलता O( n लॉग( n )).
  • सरासरी केस: मर्ज क्रमवारीसाठी सरासरी वेळ जटिलता O( n log(4) आहे>n )).
  • सर्वोत्तम प्रकरण: विलीनीकरण क्रमवारीसाठी सर्वोत्तम वेळ जटिलता O( n log( n )).

फायदे

  • या वर्गीकरण तंत्रासाठी फाइल आकार काही फरक पडत नाही.
  • 14 उदाहरणार्थ, लिंक केलेल्या याद्या, टेप ड्राइव्ह इ.

तोटे

  • इतरांच्या तुलनेत अधिक जागा आवश्यक आहे क्रमवारी लावण्याचे तंत्र.
  • ते इतरांपेक्षा तुलनेने कमी कार्यक्षम आहे.

द्रुत क्रमवारी

सूचीतील घटकांची क्रमवारी लावण्यासाठी द्रुत क्रमवारी पुन्हा विभाजित आणि जिंकण्याची पद्धत वापरते. किंवा अॅरे. हे पिव्होट घटकांना लक्ष्य करते आणि निवडलेल्या पिव्होट घटकांनुसार घटकांची क्रमवारी लावते.

उदाहरणार्थ

  • आम्हाला एक अ‍ॅरे दिलेला आहे ज्यामध्ये " 1" घटक आहेत. ,8,3,9,4,5,7”.
  • आपण “7” हा पायलट घटक असल्याचे गृहीत धरू.
  • आता आपण अ‍ॅरेला अशा प्रकारे विभाजित करू की डाव्या बाजूला मुख्य घटक “7” पेक्षा लहान असलेले घटक आहेत आणि उजव्या बाजूला मुख्य घटक “7” पेक्षा मोठे घटक आहेत.
  • आता आमच्याकडे दोन अॅरे आहेत “ 1,3,4,5 ” आणि “ 8, 9 ”.
  • पुन्हा, आपल्याला दोन्ही अॅरे वरीलप्रमाणेच विभाजित करावे लागतील. फरक एवढाच आहे की पिव्होट घटक बदलले जातात.
  • अ‍ॅरेमध्ये एकच घटक मिळेपर्यंत आम्हाला अ‍ॅरे विभाजित करावे लागतील.
  • शेवटी, सर्व पिव्होट घटक एका डावीकडून उजवीकडे क्रम आणि तुम्हाला क्रमवारी मिळेलअरे

    क्विक सॉर्टची वेळ जटिलता

    • सर्वात वाईट परिस्थिती: क्विक सॉर्टसाठी सर्वात वाईट वेळ जटिलता O(4) आहे>n 2).
    • सरासरी केस: द्रुत क्रमवारीसाठी सरासरी वेळ जटिलता O( n log( n ) आहे. ).
    • सर्वोत्तम प्रकरण: द्रुत क्रमवारीसाठी सर्वोत्तम वेळ जटिलता म्हणजे O( n लॉग( n )).

    फायदे

    • याला पायथॉनमधील सर्वोत्तम क्रमवारी अल्गोरिदम म्हणून ओळखले जाते.
    • मोठ्या प्रमाणात डेटा हाताळताना हे उपयुक्त आहे.15
    • याला अतिरिक्त जागेची आवश्यकता नाही.

तोटे

  • त्याची सर्वात वाईट-केस जटिलता बबल क्रमवारीच्या जटिलतेसारखीच आहे आणि इन्सर्टेशन सॉर्ट.
  • आमच्याकडे आधीच सॉर्ट केलेली यादी असताना ही सॉर्टिंग पद्धत उपयुक्त नाही.

हीप सॉर्ट

हीप सॉर्ट ही बायनरी सर्च ट्रीची प्रगत आवृत्ती आहे . हीप क्रमवारीत, अॅरेचा सर्वात मोठा घटक झाडाच्या मुळावर नेहमी आणि नंतर ठेवला जातो, लीफ नोड्सच्या मुळाशी तुलना केली जाते.

उदाहरणार्थ:

  • आम्हाला “ 40, 100, 30, 50, 10” घटक असलेले अॅरे दिलेले आहेत.
  • “स्टेप 1” मध्ये आम्ही त्यानुसार एक झाड बनवले आहे. अॅरेमधील घटकांची उपस्थिती.

  • पायरी 2” मध्ये आम्ही जास्तीत जास्त ढीग बनवत आहोत म्हणजेच उतरत्या क्रमाने घटक. सर्वात मोठा घटक होईलशीर्षस्थानी (मूळ) राहतात आणि सर्वात लहान घटक तळाशी (लीफ नोड्स) राहतात. दिलेला अ‍ॅरे “100, 50, 30, 40, 10” होतो.

  • “चरण 3” मध्ये, आम्ही किमान ढीग बनवत आहोत जेणेकरून आपण अॅरेचे किमान घटक शोधू शकू. असे केल्याने, आपल्याला जास्तीत जास्त आणि किमान घटक मिळतात.

  • “चरण 4” मध्ये समान पायऱ्या पार पाडून आम्हाला सॉर्ट केलेला अॅरे मिळेल.

हीप सॉर्टसाठी प्रोग्राम

``` def HeapSortify( arr, n, i ): larger_element = i left = 2 * i + 1 right = 2 * i + 2 if left  n and arr[ larger_element ]  arr[ left ]: larger_element = left if right  n and arr[ larger_element ]  arr[ right ]: larger_element = right if larger_element != i: arr[ i ], arr[ larger_element ] = arr[ larger_element ], arr[ i ] HeapSortify( arr, n, larger_element ) def HeapSort( arr ): n = len( arr ) for i in range( n//2 - 1, -1, -1 ): HeapSortify( arr, n, i ) for i in range( n-1, 0, -1 ): arr[ i ], arr[ 0 ] = arr[ 0 ], arr[ i ] HeapSortify( arr, i, 0 ) arr = [ 11, 10, 12, 4, 5, 6 ] print( " The unsorted array is: ", arr ) HeapSort( arr ) n = len( arr ) print( " The sorted array sorted by the Heap Sort: " ) for i in range( n ): print( arr[ i ] ) ``` 

आउटपुट

हिप क्रमवारीची वेळ जटिलता

  • सर्वात वाईट परिस्थिती: हीप क्रमवारीसाठी सर्वात वाईट वेळ जटिलता आहे O( n log( n )).
  • सरासरी केस: हीप क्रमवारीसाठी सरासरी वेळ जटिलता O( n) आहे लॉग( n )).
  • सर्वोत्कृष्ट केस: हीप सॉर्टसाठी सर्वोत्तम वेळ जटिलता आहेO( n लॉग( n )).

फायदे

  • ते मुख्यतः त्याच्या उत्पादकतेमुळे वापरले जाते.
  • ते करू शकते इन-प्लेस अल्गोरिदम म्हणून अंमलात आणा.
  • याला मोठ्या स्टोरेजची आवश्यकता नाही.

तोटे

  • यासाठी जागा आवश्यक आहे घटकांची क्रमवारी लावणे.
  • हे घटकांची क्रमवारी लावण्यासाठी वृक्ष बनवते.

वर्गीकरण तंत्रामधील तुलना

वर्गीकरण पद्धत सर्वोत्तम केस वेळेची जटिलता सरासरी केस वेळेची जटिलता सर्वात वाईट केस वेळेची जटिलता स्पेस जटिलता स्थिरता मध्ये -
वरील स्क्रॉल करा