logo

„Python“ programa, skirta eilutei rūšiuoti

Rūšiavimas visada buvo gana populiarus įrankis su daugybe programų visur, kur pasirenkama Python kalba. Python savo kalba siūlo rūšiavimo funkciją šiai užduočiai atlikti. Tačiau kadangi ne visi Python konteineriai yra kintami, pvz., eilutė, rūšiavimo funkcija neveikia, nes bandoma rūšiuoti, o nekintamumas tai sustabdo. Aptarkime konkrečius būdus, kuriais eilutę galima rūšiuoti.

Pavyzdys

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

Programa, skirta rūšiuoti eilutę Python

Žemiau yra metodų, kuriuos apžvelgsime, sąrašai:



Programa rūšiuoti eilutę naudojant join() ir sorted()

Pirmiau minėtų funkcijų derinys gali išspręsti šią konkrečią problemą. Ši užduotis atliekama 2 žingsnyje kuriame pirmame žingsnyje gauname surūšiuotą simbolių sąrašą ir tada sujungiame rezultatą, kad gautume rezultatą surūšiuota eilutė.

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

>

>

15 iš 100,00
Išvestis

The original string : geekforgeeks String after sorting : eeeefggkkors>

Laiko sudėtingumas: Kodo laiko sudėtingumas yra O(n log n).
Erdvės sudėtingumas: Pateikto kodo erdvės sudėtingumas yra O(n).

Rūšiuoti Python eilutę u dainuoti gimtąjį metodą

Norėdami rūšiuoti nurodytą eilutę su vartotojo įvestimi, naudodami integruotą Python rūšiavimo metodą.

Python3




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

>

c++ eilutės padalijimas
>

Išvestis:

Original String: geekforgeeks Sorted String:  eeeefggkkors>

Laiko sudėtingumas: Kodo laiko sudėtingumas yra O(n log n).
Erdvės sudėtingumas: Pateikto kodo erdvės sudėtingumas yra O(n).

Rūšiuokite Python eilutę naudodami redukcijos () ir lambda

Šią konkrečią užduotį taip pat galima atlikti naudojant aukščiau išvardytų funkcijų derinį. Čia mes sujungiame gautą surūšiuotą simbolių sąrašą naudodami lambda funkcija sujungiama mažinimo funkcija. Veikia tik 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))>

>

>

sveikasis skaičius į eilutę Java
Išvestis

The original string : geekforgeeks String after sorting : eeeefggkkors>

Laiko sudėtingumas: Kodo laiko sudėtingumas yra O(n log n).
Erdvės sudėtingumas: Pateikto kodo erdvės sudėtingumas yra O(n).

Rūšiuoti eilutę „Python“ naudojant „Bubble Sort“.

Konvertuokite eilutę į simbolių sąrašą, tada naudokite burbulų rūšiavimas algoritmas sąrašui rūšiuoti dabar prisijunkite prie surūšiuoto sąrašo, kad sudarytumėte eilutę.

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

Word greitosios prieigos įrankių juosta
>

>

Išvestis

Original string: geekforgeeks String after sorting: eeeefggkkors>

Laiko sudėtingumas : O(n^2), nes naudojame burbulų rūšiavimo algoritmą, kurio laiko sudėtingumas yra O(n^2).
Pagalbinė erdvė: O(n), nes sukuriame naują simbolių sąrašą iš pradinės eilutės.

Programa, skirta rūšiuoti eilutę naudojant sujungimo rūšiavimą

Šis metodas naudoja sujungti rūšiuoti algoritmas rūšiuoti simbolius eilutėje. Pirmiausia ji paverčia eilutę į simbolių sąrašą, o tada rekursyviai padalija sąrašą per pusę, kol pasiekiama vieno elemento pagrindinė raidė. Tada abi pusės vėl sujungiamos rūšiuota tvarka, naudojant funkciją merge (). Tada surūšiuotas sąrašas vėl konvertuojamas į eilutę.

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

>

>

Išvestis

String after sorting: eeeefggkkors>

Laiko sudėtingumas: O(n log n) kur n yra įvesties eilutės s ilgis.
Erdvės sudėtingumas: O(n) kur n yra įvesties eilutės s ilgis.

Rūšiuokite eilutę Python programoje naudodami žodyną

Ši programa rūšiuoja nurodytą įvesties eilutę didėjimo tvarka pagal joje esančius simbolius. Jis naudoja žodyną, kad suskaičiuotų kiekvieno simbolio dažnį ir surūšiuotų juos pagal simbolio ASCII reikšmę.

Python3


neapibrėžtas nuolydis



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

>

>

Išvestis

Original string: geekforgeeks String after sorting: eeeefggkkors>

Laiko sudėtingumas: Šio algoritmo laiko sudėtingumas yra O(nlogn) dėl funkcijos sorted() naudojimo.
Erdvės sudėtingumas: Šio algoritmo erdvės sudėtingumas yra O(n), nes kiekvieno simbolio skaičiui saugoti naudojamas žodynas.