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:

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.