Python-ohjelma merkkijonon lajitteluun

Lajittelu on aina ollut melko suosittu apuohjelma, jossa on paljon sovelluksia kaikkialla, missä Python-kieli valitsee. Python tarjoaa kielellään lajittelutoiminnon tämän tehtävän suorittamiseen. Mutta koska kaikki Python-säilöt eivät ole muuttuvia, kuten merkkijono, lajittelutoiminto ei toimi, koska se yrittää lajitella, ja muuttumattomuus estää tämän. Keskustellaan erityisistä tavoista, joilla merkkijono voidaan lajitella.

Esimerkki

  Input:   geekforgeeks   Output:   eeeefggkkors   Explaination:  The Sorting the characters in ascending order gives us 'eeeefggkkors'. 

Ohjelma merkkijonon lajitteluun Pythonissa

Alla on luettelo menetelmistä, joita käsittelemme:

Ohjelma lajitella merkkijono komennolla join() ja sorted()

Yllä olevien toimintojen yhdistelmä voi mahdollisesti ratkaista tämän ongelman. Tämä tehtävä suoritetaan 2. vaiheessa jossa ensimmäisessä vaiheessa saamme lajiteltujen merkkien luettelon ja sitten yhdistämme tuloksen saadaksemme resultantin lajiteltu merkkijono.

Python 3




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))>

Lähtö

The original string : geekforgeeks String after sorting : eeeefggkkors 

Aika monimutkaisuus: Koodin aikamonimutkaisuus on O(n log n).
Tilan monimutkaisuus: Annetun koodin avaruuden kompleksisuus on O(n).

Lajittele Python-merkkijono u laulaa Native Methodia

Tietyn merkkijonon lajitteleminen käyttäjän syötteellä käyttämällä sisäänrakennettua Python-lajittelumenetelmää.

Python 3




String> => 'geekforgeeks'> print> (> 'Original String: '> , String)> lst> => list> (String)> lst.sort()> print> (> 'Sorted String: '> )> for> i> in> lst:> > print> (i, end> => '')>

Lähtö:

Original String: geekforgeeks Sorted String:  eeeefggkkors 

Aika monimutkaisuus: Koodin aikamonimutkaisuus on O(n log n).
Tilan monimutkaisuus: Annetun koodin avaruuden kompleksisuus on O(n).

Lajittele Python-merkkijono käyttämällä reduction()- ja lambda-komentoa

Tämä tietty tehtävä voidaan suorittaa myös käyttämällä yllä olevien toimintojen yhdistelmää. Tässä yhdistetään tuloksena oleva lajiteltu merkkiluettelo käyttämällä lambda-toiminto liittyy vähennystoiminto. Toimii vain Python2:lle

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))>

Lähtö

The original string : geekforgeeks String after sorting : eeeefggkkors 

Aika monimutkaisuus: Koodin aikamonimutkaisuus on O(n log n).
Tilan monimutkaisuus: Annetun koodin avaruuden kompleksisuus on O(n).

Lajittele merkkijono Pythonissa käyttämällä Bubble Sort -toimintoa

Muunna merkkijono merkkiluetteloksi ja käytä sitten kuplalajittelu algoritmi lajitella luettelo nyt liittyä lajiteltu luettelo muodostaa merkkijono.

Python 3




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]>tankit[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))>

Lähtö

Original string: geekforgeeks String after sorting: eeeefggkkors 

Aika monimutkaisuus : O(n^2), koska käytämme kuplalajittelualgoritmia, jonka aikamonimutkaisuus on O(n^2).
Aputila: O(n), koska luomme uuden merkkiluettelon alkuperäisestä merkkijonosta.

Ohjelma lajittelee merkkijonon yhdistämislajittelulla

Tämä lähestymistapa käyttää Yhdistä lajittelu algoritmi merkkijonon merkkien lajitteluun. Se muuntaa ensin merkkijonon merkkiluetteloksi ja jakaa sitten luettelon rekursiivisesti kahtia, kunnes saavutetaan yksittäisen elementin peruskirjain. Molemmat puolikkaat yhdistetään sitten takaisin yhteen lajiteltuun järjestykseen merge()-funktiolla. Lajiteltu luettelo muunnetaan sitten takaisin merkkijonoksi.

Python 3




# 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)>

Lähtö

String after sorting: eeeefggkkors 

Aika monimutkaisuus: O(n log n) missä n on syötemerkkijonon s pituus.
Tilan monimutkaisuus: O(n) missä n on syötemerkkijonon s pituus.

Lajittele merkkijono Python-ohjelmassa sanakirjan avulla

Tämä ohjelma lajittelee syötetyn merkkijonon nousevaan järjestykseen siinä olevien merkkien perusteella. Se laskee kunkin merkin tiheyden sanakirjan avulla ja lajittelee ne sitten merkin ASCII-arvon perusteella.

Python 3




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))>

Lähtö

Original string: geekforgeeks String after sorting: eeeefggkkors 

Aika monimutkaisuus: Tämän algoritmin aikamonimutkaisuus on O(nlogn) sorted()-funktion käytön vuoksi.
Tilan monimutkaisuus: Tämän algoritmin tilamonimutkaisuus on O(n), koska sanakirjaa käytetään kunkin merkin määrän tallentamiseen.