Programa para ordenar strings en orden descendente

Dada una string, ordenarla en orden descendente.

Ejemplos: 

Input : alkasingh
Output : snlkihgaa 

Input : nupursingh
Output : uusrpnnihg 

Input : geeksforgeeks
Output : ssrokkggfeeee 

Una solución simple es usar la función de clasificación de la biblioteca std::sort()

Implementación:

C++

// CPP program to sort a string in descending
// order using library function
#include <bits/stdc++.h>
using namespace std;
 
void descOrder(string &s)
{
    sort(s.begin(), s.end(), greater<char>());
}
 
int main()
{
    string s = "geeksforgeeks";
    descOrder(s); // function call
    for(int i = 0; i <  s.size(); i++)
      cout << s[i];
    return 0;
}

Java

// Java program to sort a string in descending
// order using library function
import java.util.*;
 
class GFG
{
 
    static void descOrder(char[] s)
    {
        Arrays.sort(s);
        reverse(s);
    }
 
    static void reverse(char[] a)
    {
        int i, n = a.length;
        char t;
        for (i = 0; i < n / 2; i++)
        {
            t = a[i];
            a[i] = a[n - i - 1];
            a[n - i - 1] = t;
        }
    }
 
    // Driver code
    public static void main(String[] args)
    {
        char[] s = "geeksforgeeks".toCharArray();
        descOrder(s); // function call
        System.out.println(String.valueOf(s));
    }
}
 
// This code is contributed by 29AjayKumar

Python

# Python program to sort
# a string in descending
# order using library function
 
def descOrder(s):
    s.sort(reverse = True)
    str1 = ''.join(s)
    print(str1)
 
def main():
    s = list('geeksforgeeks')
     
    # function call
    descOrder(s)
 
if __name__=="__main__":
    main()
 
# This code is contributed by
# prabhat kumar singh

C#

// C# program to sort a string in descending
// order using library function
using System;
     
class GFG
{
  
    static void descOrder(char[] s)
    {
        Array.Sort(s);
        reverse(s);
    }
  
    static void reverse(char[] a)
    {
        int i, n = a.Length;
        char t;
        for (i = 0; i < n / 2; i++)
        {
            t = a[i];
            a[i] = a[n - i - 1];
            a[n - i - 1] = t;
        }
    }
  
    // Driver code
    public static void Main(String[] args)
    {
        char[] s = "geeksforgeeks".ToCharArray();
        descOrder(s); // function call
        Console.WriteLine(String.Join("",s));
    }
}
 
// This code is contributed by Rajput-Ji

PHP

<?php
// PHP program to sort a string in descending
// order using library function
 
function descOrder($s)
{
    $s = str_split($s);
    rsort($s);
    echo implode('', $s);
}
 
// Driver Code
$s = "geeksforgeeks";
descOrder($s); // function call
 
// This code is contributed by ita_c
?>

Javascript

<script>
 
      //  JavaScript program to sort
      //  a string in descending
      //  order using library function
 
      function descOrder(s) {
        s.sort().reverse();
        str1 = s.join("");
        document.write(str1);
      }
 
      var s = "geeksforgeeks";
      s = s.split("");
     
    // function call
      descOrder(s);
       
 </script>
Producción

ssrokkggfeeee

La complejidad del tiempo es: O(n log n) 
Espacio auxiliar: O(1) 

Un enfoque eficiente será observar primero que solo puede haber un total de 26 caracteres únicos. Por lo tanto, podemos almacenar el recuento de ocurrencias de todos los caracteres de ‘a’ a ‘z’ en una array codificada. El primer índice de la array hash representará el carácter ‘a’, el segundo representará ‘b’ y así sucesivamente. Finalmente, simplemente recorreremos la array hash e imprimiremos los caracteres de ‘z’ a ‘a’ la cantidad de veces que ocurrieron en la string de entrada.

A continuación se muestra la implementación de la idea anterior: 

C++

// C++ program to sort a string of characters
// in descending order
#include <bits/stdc++.h>
using namespace std;
 
const int MAX_CHAR = 26;
 
// function to print string in sorted order
void sortString(string& str)
{
    // Hash array to keep count of characters.
    // Initially count of all charters is
    // initialized to zero.
    int charCount[MAX_CHAR] = { 0 };
 
    // Traverse string and increment
    // count of characters
    for (int i = 0; i < str.length(); i++)
 
        // 'a'-'a' will be 0, 'b'-'a' will be 1,
        // so for location of character in count
        // array we will do str[i]-'a'.
        charCount[str[i] - 'a']++;
 
    // Traverse the hash array and print
    // characters
    for (int i = MAX_CHAR - 1; i >= 0; i--)
        for (int j = 0; j < charCount[i]; j++)
            cout << (char)('a' + i);
}
 
// Driver program to test above function
int main()
{
    string s = "alkasingh";
    sortString(s);
    return 0;
}

Java

// Java program to sort a string of characters
// in descending order
 
class GFG
{
 
    static int MAX_CHAR = 26;
 
    // function to print string in sorted order
    static void sortString(String str)
    {
         
        // Hash array to keep count of characters.
        // Initially count of all charters is
        // initialized to zero.
        int charCount[] = new int[MAX_CHAR];
 
        // Traverse string and increment
        // count of characters
        // 'a'-'a' will be 0, 'b'-'a' will be 1,
        for (int i = 0; i < str.length(); i++)
        {
             
            // so for location of character in count
            // array we will do str[i]-'a'.
            charCount[str.charAt(i) - 'a']++;
        }
 
        // Traverse the hash array and print
        // characters
        for (int i = MAX_CHAR - 1; i >= 0; i--)
        {
            for (int j = 0; j < charCount[i]; j++)
            {
                System.out.print((char) ('a' + i));
            }
        }
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String s = "alkasingh";
        sortString(s);
    }
}
 
// This code is contributed by 29AjayKumar

Python3

# Python program to sort a string of characters
# in descending order
 
MAX_CHAR = 26;
 
# function to print string in sorted order
def sortString(str):
     
    # Hash array to keep count of characters.
    # Initially count of all charters is
    # initialized to zero.
    charCount = [0]*MAX_CHAR;
 
    # Traverse string and increment
    # count of characters
    for i in range(len(str)):
 
        # 'a'-'a' will be 0, 'b'-'a' will be 1,
        # so for location of character in count
        # array we will do str[i]-'a'.
        charCount[ord(str[i]) - ord('a')]+=1;
 
    # Traverse the hash array and print
    # characters
    for i in range(MAX_CHAR - 1,-1, -1):
        for j in range(charCount[i]):
            print(chr(97+i),end="");
 
# Driver program to test above function
s = "alkasingh";
sortString(s);
 
# This code is contributed by Princi Singh

C#

// C# program to sort a string of characters
// in descending order
using System;
 
class GFG
{
    static int MAX_CHAR = 26;
 
    // function to print string in sorted order
    static void sortString(String str)
    {
         
        // Hash array to keep count of characters.
        // Initially count of all charters is
        // initialized to zero.
        int []charCount = new int[MAX_CHAR];
 
        // Traverse string and increment
        // count of characters
        // 'a'-'a' will be 0, 'b'-'a' will be 1,
        for (int i = 0; i < str.Length; i++)
        {
             
            // so for location of character in 
            // count array we will do str[i]-'a'.
            charCount[str[i] - 'a']++;
        }
 
        // Traverse the hash array and print
        // characters
        for (int i = MAX_CHAR - 1; i >= 0; i--)
        {
            for (int j = 0; j < charCount[i]; j++)
            {
                Console.Write((char) ('a' + i));
            }
        }
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        String s = "alkasingh";
        sortString(s);
    }
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
// Javascript program to sort a string of characters
// in descending order
    let MAX_CHAR = 26;
     
    // function to print string in sorted order
    function sortString(str)
    {
     
        // Hash array to keep count of characters.
        // Initially count of all charters is
        // initialized to zero.
        let charCount = new Array(MAX_CHAR);
        for(let i = 0; i < charCount.length; i++)
        {
            charCount[i] = 0;
        }
  
        // Traverse string and increment
        // count of characters
        // 'a'-'a' will be 0, 'b'-'a' will be 1,
        for (let i = 0; i < str.length; i++)
        {
              
            // so for location of character in count
            // array we will do str[i]-'a'.
            charCount[str[i].charCodeAt(0) - 'a'.charCodeAt(0)]++;
        }
  
        // Traverse the hash array and print
        // characters
        for (let i = MAX_CHAR - 1; i >= 0; i--)
        {
            for (let j = 0; j < charCount[i]; j++)
            {
                document.write(String.fromCharCode ('a'.charCodeAt(0) + i));
            }
        }
    }
     
    // Driver code
    let s = "alkasingh";
    sortString(s);
         
    // This code is contributed by avanitrachhadiya2155
</script>
Producción

snlkihgaa

Complejidad de tiempo: O( n ), donde n es la longitud de la string de entrada. 
Espacio Auxiliar: O( 1 ) .

Este artículo es una contribución de Aarti_Rathi y Prabhat kumar singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *