Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Sort the given string using character search

  • Difficulty Level : Easy
  • Last Updated : 14 Jun, 2021

Given a string str of size n. The problem is to sort the given string without using any sorting techniques (like bubble, selection, etc). The string contains only lowercase characters.
Examples: 
 

Input : geeksforgeeks
Output : eeeefggkkorss

Input : coding
Output : cdgino

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

Algorithm: 
 



sortString(str, n)
    Initialize new_str = ""
    
    for i = 'a' to 'z'
        for j = 0 to n-1
            if str[j] == i, then
                new_str += str[j]

    return new_str

 

C++




// C++ implementation to sort the given string without
// using any sorting technique
#include <bits/stdc++.h>
using namespace std;
 
// function to sort the given string without
// using any sorting technique
string sortString(string str, int n) {
 
  // to store the final sorted string
  string new_str = "";
 
  // for each character 'i'
  for (int i = 'a'; i <= 'z'; i++)
 
    // if character 'i' is present at a particular
    // index then add character 'i' to 'new_str'
    for (int j = 0; j < n; j++)
      if (str[j] == i)
        new_str += str[j];
 
  // required final sorted string
  return new_str;
}
 
// Driver program to test above
int main() {
  string str = "geeksforgeeks";
  int n = str.size();
  cout << sortString(str, n);
  return 0;
}

Java




// Java implementation to sort the given
// string without using any sorting technique
class GFG {
     
    // function to sort the given string
    // without using any sorting technique
    static String sortString(String str, int n)
    {
 
        // to store the final sorted string
        String new_str = "";
 
        // for each character 'i'
        for (int i = 'a'; i <= 'z'; i++)
 
            // if character 'i' is present at a
            // particular index then add character
            // 'i' to 'new_str'
            for (int j = 0; j < n; j++)
                if (str.charAt(j) == i)
                    new_str += str.charAt(j);
 
        // required final sorted string
        return new_str;
    }
     
    // Driver code
    public static void main(String[] args)
    {
        String str = "geeksforgeeks";
        int n = str.length();
         
        System.out.print(sortString(str, n));
    }
}
 
// This code is contributed by Anant Agarwal.

Python3




# Python3 implementation to sort
# the given string without using
# any sorting technique
 
# Function to sort the given string
# without using any sorting technique
def sortString(str, n):
 
    # To store the final sorted string
    new_str = ""
 
    # for each character 'i'
    for i in range(ord('a'), ord('z') + 1):
 
        # if character 'i' is present at a particular
        # index then add character 'i' to 'new_str'
        for j in range(n):
            if (str[j] == chr(i)):
                new_str += str[j]
 
    # required final sorted string
    return new_str
 
# Driver Code
str = "geeksforgeeks"
n = len(str)
print(sortString(str, n))
 
# This code is contributed by Anant Agarwal.

C#




// C# implementation to sort the given
// string without using any sorting technique
using System;
 
class GFG {
     
    // function to sort the given string
    // without using any sorting technique
    static String sortString(String str, int n)
    {
        // to store the final sorted string
        String new_str = "";
 
        // for each character 'i'
        for (int i = 'a'; i <= 'z'; i++)
 
            // if character 'i' is present at a
            // particular index then add character
            // 'i' to 'new_str'
            for (int j = 0; j < n; j++)
                if (str[j] == i)
                    new_str += str[j];
 
        // required final sorted string
        return new_str;
    }
 
    // Driver code
    public static void Main()
    {
        String str = "geeksforgeeks";
        int n = str.Length;
 
        Console.Write(sortString(str, n));
    }
}
 
// This code is contributed by Sam007

Javascript




<script>
 
// Javascript implementation to sort the given string without
// using any sorting technique
 
// function to sort the given string without
// using any sorting technique
function sortString(str, n) {
 
  // to store the final sorted string
  var new_str = "";
 
  // for each character 'i'
  for (var i = 'a'.charCodeAt(0); i <= 'z'.charCodeAt(0); i++)
 
    // if character 'i' is present at a particular
    // index then add character 'i' to 'new_str'
    for (var j = 0; j < n; j++)
      if (str[j].charCodeAt(0) == i)
        new_str += str[j];
 
  // required final sorted string
  return new_str;
}
 
// Driver program to test above
var str = "geeksforgeeks";
var n = str.length;
document.write( sortString(str, n));
 
</script>
Output : 
eeeefggkkorss

 

Method 2: 
In the above method we have to traverse the entire string every time for each of the character in set of ‘a’ to ‘z’.We can overcome this drawback by maintaining a character and filling it with number of the occurrence’s of all the characters in the string.Later we can construct the required sorted string from the character array.
Below is the implementation. 
 

C++




// C++ implementation to sort the given
// string without using any sorting technique
#include <iostream>
using namespace std;
 
string sortString(string str, int n) {
int i;
//A character array to store the no.of occurrences of each character
//between 'a' to 'z'
char arr[26]={0};
 
//to store the final sorted string
string new_str = "";
 
//To store each occurrence of character by relative indexing
for (i = 0; i < n; i++)
   ++arr[str[i]-'a'];
 
 
//To traverse the character array and append it to new_str
for(i=0;i<26;i++)
  while(arr[i]--)
    new_str += i+'a';
 
return new_str;
}
 
// Driver program to test above
int main() {
string str = "geeksforgeeks";
int n = str.size();
cout << sortString(str, n);
return 0;
}
 
// This code is contributed by Aravind Alapati

Java




// Java implementation to sort the given
// String without using any sorting technique
class GFG
{
 
    static String sortString(String str, int n)
    {
        int i;
         
        // A character array to store
        // the no.of occurrences of each
        // character between 'a' to 'z'
        char[] arr = new char[26];
 
        // to store the final sorted String
        String new_str = "";
 
        // To store each occurrence of
        // character by relative indexing
        for (i = 0; i < n; i++)
            ++arr[str.charAt(i) - 'a'];
 
        // To traverse the character
        // array and append it to new_str
        for (i = 0; i < 26; i++)
            while (arr[i]-- > 0)
            {
                new_str += String.valueOf((char)(i + 'a'));
            }
 
        return new_str;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String str = "geeksforgeeks";
        int n = str.length();
        System.out.print(sortString(str, n));
    }
}
 
// This code is contributed by Rajput-Ji

Python3




# Python 3 implementation to sort the given
# string without using any sorting technique
def sortString(st, n):
   
    # A character array to store the no.of occurrences of each character
    # between 'a' to 'z'
    arr = [0] * 26
 
    # to store the final sorted string
    new_str = ""
     
    # To store each occurrence of character by relative indexing
    for i in range(n):
        arr[ord(st[i]) - ord('a')] += 1
 
    # To traverse the character array and append it to new_str
    for i in range(26):
        while(arr[i] > 0):
            new_str += chr(i+ord('a'))
            arr[i] -= 1
 
    return new_str
 
# Driver program to test above
if __name__ == "__main__":
 
    st = "geeksforgeeks"
    n = len(st)
    print(sortString(st, n))
 
    # This code is contributed by ukasp.

C#




// C# implementation to sort the given
// String without using any sorting technique
using System;
 
class GFG
{
 
    static String sortString(String str, int n)
    {
        int i;
         
        // A character array to store
        // the no.of occurrences of each
        // character between 'a' to 'z'
        char[] arr = new char[26];
 
        // to store the readonly sorted String
        String new_str = "";
 
        // To store each occurrence of
        // character by relative indexing
        for (i = 0; i < n; i++)
            ++arr[str[i] - 'a'];
 
        // To traverse the character
        // array and append it to new_str
        for (i = 0; i < 26; i++)
            while (arr[i]-- > 0)
            {
                new_str += String.Join("",(char)(i + 'a'));
            }
 
        return new_str;
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        String str = "geeksforgeeks";
        int n = str.Length;
        Console.Write(sortString(str, n));
    }
}
 
// This code is contributed by 29AjayKumar

Javascript




<script>
 
// Javascript implementation to sort the given
// string without using any sorting technique
 
function sortString(str, n) {
var i;
//A character array to store the no.of occurrences of each character
//between 'a' to 'z'
var arr = Array(26).fill(0);
 
//to store the final sorted string
var new_str = "";
 
//To store each occurrence of character by relative indexing
for (i = 0; i < n; i++)
   ++arr[str[i].charCodeAt(0) -'a'.charCodeAt(0)];
 
 
//To traverse the character array and append it to new_str
for(i=0;i<26;i++)
  while(arr[i]--)
    new_str += String.fromCharCode(i +'a'.charCodeAt(0));
 
return new_str;
}
 
// Driver program to test above
 
var str = "geeksforgeeks";
var n = str.length;
document.write( sortString(str, n));
 
 
</script>
Output : 
eeeefggkkorss

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :