# Sort the given string using character search

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

Input : coding
Output : cdgino
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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

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   ` `using` `namespace` `std;  ` ` `  `string sortString(string str, ``int` `n) {  ` `int` `i; ` `//A character array to store the no.of occurances of each character ` `//between 'a' to 'z' ` `char` `arr={0}; ` ` `  `//to store the final sorted string  ` `string new_str = ``""``;  ` ` `  `//To store each occrance 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 occurances of each  ` `        ``// character between 'a' to 'z' ` `        ``char``[] arr = ``new` `char``[``26``]; ` ` `  `        ``// to store the final sorted String ` `        ``String new_str = ``""``; ` ` `  `        ``// To store each occrance 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 `

## 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 occurances of each  ` `        ``// character between 'a' to 'z' ` `        ``char``[] arr = ``new` `char``; ` ` `  `        ``// to store the readonly sorted String ` `        ``String new_str = ``""``; ` ` `  `        ``// To store each occrance 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 `

Output :

```eeeefggkkorss
```

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.