logo

Python programma virknes kārtošanai

Šķirošana vienmēr ir bijusi diezgan populāra utilīta ar daudzām lietojumprogrammām visur, kur izvēlas Python valodu. Python savā valodā piedāvā šķirošanas funkciju šī uzdevuma veikšanai. Bet, tā kā ne visi Python konteineri ir maināmi, piemēram, virkne, kārtošanas funkcija nedarbojas, kā tā ir vietā, mēģinot kārtot, un nemainīgums to aptur. Apspriedīsim konkrētus veidus, kā virkni var kārtot.

Piemērs



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

Programma virknes kārtošanai Python

Tālāk ir sniegti to metožu saraksti, kuras mēs apskatīsim:

Programma virknes kārtošanai, izmantojot join() un sorted()

Iepriekš minēto funkciju kombinācija potenciāli var atrisināt šo konkrēto problēmu. Šis uzdevums tiek veikts 2. solī kurā pirmajā solī mēs iegūstam sakārtoto rakstzīmju sarakstu un pēc tam savienojam rezultātu, lai iegūtu rezultātu sakārtota virkne.

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

>

atsakieties no Google konta operētājsistēmā Android

>

Izvade

The original string : geekforgeeks String after sorting : eeeefggkkors>

Laika sarežģītība: Koda laika sarežģītība ir O(n log n).
Kosmosa sarežģītība: Dotā koda telpas sarežģītība ir O(n).

Kārtot Python virkni u dziedāt dzimto metodi

Lai kārtotu noteiktu virkni ar lietotāja ievadi, izmantojot iebūvēto Python kārtošanas metodi.

Python3




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

>

>

Izvade:

Original String: geekforgeeks Sorted String:  eeeefggkkors>

Laika sarežģītība: Koda laika sarežģītība ir O(n log n).
Kosmosa sarežģītība: Dotā koda telpas sarežģītība ir O(n).

Kārtojiet Python virkni, izmantojot redukcijas () un lambda

Šo konkrēto uzdevumu var veikt arī, izmantojot iepriekš minēto funkciju kombināciju. Šeit mēs pievienojamies iegūtajam sakārtotajam rakstzīmju sarakstam, izmantojot lambda funkcija pievienojas samazināšanas funkcija. Darbojas tikai 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))>

>

>

Izvade

The original string : geekforgeeks String after sorting : eeeefggkkors>

Laika sarežģītība: Koda laika sarežģītība ir O(n log n).
Kosmosa sarežģītība: Dotā koda telpas sarežģītība ir O(n).

Kārtot virkni programmā Python, izmantojot burbuļu kārtošanu

Pārvērtiet virkni rakstzīmju sarakstā un pēc tam izmantojiet burbuļu kārtošana algoritms, lai kārtotu sarakstu, tagad pievienojieties sakārtotajam sarakstam, lai izveidotu virkni.

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

>

>

Izvade

Original string: geekforgeeks String after sorting: eeeefggkkors>

Laika sarežģītība : O(n^2), jo mēs izmantojam burbuļu kārtošanas algoritmu, kura laika sarežģītība ir O(n^2).
Palīgtelpa: O(n), jo mēs izveidojam jaunu rakstzīmju sarakstu no sākotnējās virknes.

Programma virknes kārtošanai, izmantojot sapludināšanas kārtošanu

Šī pieeja izmanto sapludināt kārtot algoritms, lai sakārtotu rakstzīmes virknē. Vispirms tas pārveido virkni rakstzīmju sarakstā un pēc tam rekursīvi sadala sarakstu uz pusēm, līdz tiek sasniegts viena elementa pamata reģistrs. Pēc tam abas puses atkal tiek apvienotas sakārtotā secībā, izmantojot funkciju sapludināšana (). Pēc tam sakārtotais saraksts tiek pārvērsts atpakaļ virknē.

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

>

>

dzēšana no binārā meklēšanas koka
Izvade

String after sorting: eeeefggkkors>

Laika sarežģītība: O(n log n) kur n ir ievades virknes s garums.
Telpas sarežģītība: O(n) kur n ir ievades virknes s garums.

Kārtojiet virkni Python programmā, izmantojot vārdnīcu

Šī programma sakārto doto ievades virkni augošā secībā, pamatojoties uz tajā esošajām rakstzīmēm. Tas izmanto vārdnīcu, lai saskaitītu katras rakstzīmes biežumu, un pēc tam tās sakārto, pamatojoties uz rakstzīmes ASCII vērtību.

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

>

>

Izvade

Original string: geekforgeeks String after sorting: eeeefggkkors>

Laika sarežģītība: Šī algoritma laika sarežģītība ir O(nlogn), jo tiek izmantota funkcija sorted().
Kosmosa sarežģītība: Šī algoritma telpas sarežģītība ir O(n), jo katras rakstzīmes skaita saglabāšanai tiek izmantota vārdnīca.