Classificació sempre ha estat una utilitat força popular amb moltes aplicacions a tot arreu, on opta el llenguatge Python. Python en el seu llenguatge ofereix una funció d'ordenació per realitzar aquesta tasca. Però com que no tots els contenidors de Python són mutables, com ara la cadena, la funció d'ordenació no funciona ja que està al seu lloc intentant ordenar i la immutabilitat ho atura. Parlem de maneres específiques en què es pot ordenar una cadena.
Exemple
Input: geekforgeeks Output: eeeefggkkors Explaination: The Sorting the characters in ascending order gives us 'eeeefggkkors'.>
Programa per ordenar una cadena en Python
A continuació es mostren les llistes de mètodes que tractarem:
- Utilitzant join() i ordenat ()
- Utilitzant el mètode natiu
- Utilitzant la funció ordenada amb reduir () i lambda
- Utilitzant Classificació de bombolles
- Utilitzant el combinar ordenar mètode
- Utilitzant a diccionari
Programa per ordenar una cadena mitjançant join() i sortd()
La combinació de les funcions anteriors pot resoldre aquest problema en particular. Aquesta tasca es realitza en el segon pas en el qual el primer pas obtenim la llista ordenada de caràcters i després unim el resultat per obtenir la resultant cadena ordenada.
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))> |
>
>Sortida
The original string : geekforgeeks String after sorting : eeeefggkkors>
Complexitat temporal: La complexitat temporal del codi és O(n log n).
Complexitat espacial: La complexitat espacial del codi donat és O(n).
Ordena una cadena de Python u canta el Mètode Natiu
Per ordenar una cadena determinada amb l'entrada de l'usuari mitjançant el mètode d'ordenació de Python integrat.
Python 3
java convertir char en cadena
String>=> 'geekforgeeks'> print>(>'Original String: '>, String)> lst>=> list>(String)> lst.sort()> print>(>'Sorted String: '>)> for> i>in> lst:> >print>(i, end>=> '')> |
>
>
Sortida:
Original String: geekforgeeks Sorted String: eeeefggkkors>
Complexitat temporal: La complexitat temporal del codi és O(n log n).
Complexitat espacial: La complexitat espacial del codi donat és O(n).
Ordena una cadena de Python utilitzant reduce() i lambda
Aquesta tasca en particular també es pot realitzar mitjançant una combinació de les funcions anteriors. Aquí ens unim a la llista de caràcters ordenada resultant utilitzant el funció lambda unit per la funció de reducció. Només funciona per a 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))> |
>
>Sortida
The original string : geekforgeeks String after sorting : eeeefggkkors>
Complexitat temporal: La complexitat temporal del codi és O(n log n).
Complexitat espacial: La complexitat espacial del codi donat és O(n).
Ordena una cadena a Python utilitzant Bubble Sort
Converteix la cadena en una llista de caràcters i després utilitza el classificació de bombolles algorisme per ordenar la llista ara uneix-te a la llista ordenada per formar una cadena.
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]>tancs[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))> |
>
>Sortida
Original string: geekforgeeks String after sorting: eeeefggkkors>
Complexitat temporal : O(n^2) perquè utilitzem l'algorisme d'ordenació de bombolles que té una complexitat temporal de O(n^2).
Espai auxiliar: O(n) perquè creem una nova llista de caràcters a partir de la cadena original.
Programa per ordenar una cadena mitjançant Merge Sort
Aquest enfocament utilitza el combinar ordenar algorisme per ordenar els caràcters de la cadena. Primer converteix la cadena en una llista de caràcters, i després divideix recursivament la llista per la meitat fins que s'arriba al cas base d'un sol element. Les dues meitats es tornen a fusionar en ordre ordenat mitjançant la funció merge(). La llista ordenada es torna a convertir en una cadena.
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)> |
>
>
int a char javaSortida
String after sorting: eeeefggkkors>
Complexitat temporal: O(n log n) on n és la longitud de la cadena d'entrada s.
Complexitat espacial: O(n) on n és la longitud de la cadena d'entrada s.
Ordena una cadena en un programa Python mitjançant un diccionari
Aquest programa ordena una cadena d'entrada determinada en ordre ascendent en funció dels caràcters presents en ella. Utilitza un diccionari per comptar la freqüència de cada caràcter i després els ordena segons el valor ASCII del caràcter.
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))> |
>
>Sortida
Original string: geekforgeeks String after sorting: eeeefggkkors>
Complexitat temporal: La complexitat temporal d'aquest algorisme és O(nlogn) a causa de l'ús de la funció sorted().
Complexitat espacial: La complexitat espacial d'aquest algorisme és O(n) a causa de l'ús del diccionari per emmagatzemar el recompte de cada caràcter.