Program Python za razvrščanje niza
Razvrščanje je bil vedno zelo priljubljen pripomoček z veliko aplikacijami povsod, kjer se je odločil jezik Python. Python v svojem jeziku ponuja funkcijo razvrščanja za izvedbo te naloge. Toda ker niso vsi vsebniki Python spremenljivi, kot je niz, funkcija razvrščanja ne deluje, saj poskuša razvrstiti, nespremenljivost pa to ustavi. Razpravljajmo o posebnih načinih, na katere je mogoče razvrstiti niz.
Primer
Input: geekforgeeks Output: eeeefggkkors Explaination: The Sorting the characters in ascending order gives us 'eeeefggkkors'.
Program za razvrščanje niza v Pythonu
Spodaj so seznami metod, ki jih bomo obravnavali:
- Uporaba join() in razvrščeno()
- Uporaba domače metode
- Uporaba sortirane funkcije z zmanjšati () in lambda
- Uporaba Razvrščanje mehurčkov
- Uporabljati razvrščanje z združitvijo metoda
- Uporaba a slovar
Program za razvrščanje niza z uporabo join() in sorted()
Kombinacija zgornjih funkcij lahko potencialno reši ta problem. Ta naloga se izvede v 2. koraku v katerem v prvem koraku dobimo razvrščeni seznam znakov in nato združimo rezultat, da dobimo rezultanto razvrščeni niz.
Python3
test_string> => 'geekforgeeks'> # printing original string> print> (> 'The original string : '> +> str> (test_string))> # using join() + sorted()> # Sorting a string> res> => ''.join(> sorted> (test_string))> > # print result> print> (> 'String after sorting : '> +> str> (res))> |
Izhod
The original string : geekforgeeks String after sorting : eeeefggkkors
Časovna zapletenost: Časovna kompleksnost kode je O(n log n).
Kompleksnost prostora: Prostorska kompleksnost dane kode je O(n).
Razvrsti niz Python u pojejo domačo metodo
Za razvrščanje podanega niza z uporabniškim vnosom z uporabo vgrajene metode razvrščanja Python.
Python3
String> => 'geekforgeeks'> print> (> 'Original String: '> , String)> lst> => list> (String)> lst.sort()> print> (> 'Sorted String: '> )> for> i> in> lst:> > print> (i, end> => '')> |
Izhod:
Original String: geekforgeeks Sorted String: eeeefggkkors
Časovna zapletenost: Časovna kompleksnost kode je O(n log n).
Kompleksnost prostora: Prostorska kompleksnost dane kode je O(n).
Razvrstite Pythonov niz z uporabo reduce() in lambda
To posebno nalogo je mogoče izvesti tudi s kombinacijo zgornjih funkcij. Tukaj združimo nastali razvrščeni seznam znakov z uporabo lambda funkcija pridruži funkcija redukcije. Deluje samo za Python2
Python
test_string> => 'geekforgeeks'> # printing original string> print> (> 'The original string : '> +> str> (test_string))> # using sorted() + reduce() + lambda> res> => reduce> (> lambda> x, y: x> +> y,> sorted> (test_string))> > # print result> print> (> 'String after sorting : '> +> str> (res))> |
Izhod
The original string : geekforgeeks String after sorting : eeeefggkkors
Časovna zapletenost: Časovna kompleksnost kode je O(n log n).
Kompleksnost prostora: Prostorska kompleksnost dane kode je O(n).
Razvrsti niz v Pythonu z uporabo Bubble Sort
Pretvorite niz v seznam znakov in nato uporabite sortiranje mehurčkov algoritem za razvrščanje seznama se zdaj pridruži razvrščenemu seznamu in oblikuje niz.
Python3
def> sort_string(s):> > chars> => list> (s)> > n> => len> (chars)> > for> i> in> range> (n):> > for> j> in> range> (> 0> , n> -> i> -> 1> ):> > if> chars[j]>rezervoarji[j> +> 1> ]:> > chars[j], chars[j> +> 1> ]> => chars[j> +> 1> ], chars[j]> > return> ''.join(chars)> s> => 'geekforgeeks'> print> (> 'Original string:'> , s)> print> (> 'String after sorting:'> , sort_string(s))> |
Izhod
Original string: geekforgeeks String after sorting: eeeefggkkors
Časovna zapletenost : O(n^2), ker uporabljamo algoritem razvrščanja z mehurčki, ki ima časovno kompleksnost O(n^2).
Pomožni prostor: O(n), ker ustvarimo nov seznam znakov iz izvirnega niza.
Program za razvrščanje niza z razvrščanjem z združitvijo
Ta pristop uporablja razvrščanje z združitvijo algoritem za razvrščanje znakov v nizu. Najprej pretvori niz v seznam znakov, nato pa seznam rekurzivno razdeli na pol, dokler ni dosežen osnovni primer posameznega elementa. Dve polovici se nato ponovno združita v razvrščenem vrstnem redu s funkcijo merge(). Razvrščeni seznam se nato pretvori nazaj v niz.
Python3
# Define a function called 'merge_sort'> def> merge_sort(s):> > if> len> (s) <> => 1> :> > return> s> > # find the middle index of the string 's'> > mid> => len> (s)> /> /> 2> > # split the string into two halves, left and right> > left> => merge_sort(s[:mid])> > right> => merge_sort(s[mid:])> > #Recursively apply the merge_sort function on the left and right halves.> > return> merge(left, right)> > # Merge the left and right halves using the merge function.> def> merge(left, right):> #Initialize an empty list called 'result' and two indices, 'i' and 'j', both set to 0.> > result> => []> > i> => j> => 0> > while> i <> len> (left)> and> j <> len> (right):> > if> left[i] result.append(left[i]) #Increment the index of the array i += 1 else: result.append(right[j]) #Increment the index of the array j += 1 result += left[i:] result += right[j:] return result s = 'geekforgeeks' #Convert the sorted list to a string and print the result. sorted_s = ''.join(merge_sort(list(s))) print('String after sorting:', sorted_s)> |
Izhod
String after sorting: eeeefggkkors
Časovna zapletenost: O(n log n) kjer je n dolžina vhodnega niza s.
Kompleksnost prostora: O(n) kjer je n dolžina vhodnega niza s.
Razvrsti niz v programu Python s pomočjo slovarja
Ta program razvrsti dani vhodni niz v naraščajočem vrstnem redu glede na znake, ki so v njem. Uporablja slovar za štetje pogostosti vsakega znaka in jih nato razvrsti glede na vrednost ASCII znaka.
Python3
input_string> => 'geekforgeeks'> #Initialize an empty dictionary to store the count> char_count> => {}> #Loop through each character in the input string and update the count of that character> for> char> in> input_string:> > if> char> in> char_count:> > char_count[char]> +> => 1> > else> :> > char_count[char]> => 1> > #Create an empty string to store the sorted string.> sorted_string> => ''> #Loop through each character in the sorted list of keys of the dictionary> #Add that character multiplied by its count in the input string to the sorted string.> for> char> in> sorted> (char_count.keys()):> > sorted_string> +> => char> *> char_count[char]> #Print the original string and the sorted string.> print> (> 'Original string: {}'> .> format> (input_string))> print> (> 'String after sorting: {}'> .> format> (sorted_string))> |
Izhod
Original string: geekforgeeks String after sorting: eeeefggkkors
Časovna zapletenost: Časovna kompleksnost tega algoritma je O(nlogn) zaradi uporabe funkcije sorted().
Kompleksnost prostora: Prostorska kompleksnost tega algoritma je O(n) zaradi uporabe slovarja za shranjevanje števila vsakega znaka.