Sort the given string using character search
Last Updated :
04 Aug, 2022
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
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
Implementation:
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>
Time complexity : O(n)
Auxiliary Space : O(1)
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>
Time complexity : O(n)
Auxiliary Space : O(1)
Sort the given string using character search
Similar Reads
Sort the string as per ASCII values of the characters Given a string S of size N, the task is to sort the string based on its ASCII values. Examples: Input: S = "Geeks7"Output: 7GeeksExplanation: According to the ASCII values, integers comes first, then capital alphabets and the small alphabets. Input: S = "GeeksForGeeks"Output: FGGeeeekkorss Approach:
6 min read
Sort string of characters Given a string of lowercase characters from 'a' - 'z'. We need to write a program to print the characters of this string in sorted order.Examples: Input : "dcab" Output : "abcd"Input : "geeksforgeeks"Output : "eeeefggkkorss"Naive Approach - O(n Log n) TimeA simple approach is to use sorting algorith
5 min read
Searching For Characters and Substring in a String in Java Efficient String manipulation is very important in Java programming especially when working with text-based data. In this article, we will explore essential methods like indexOf(), contains(), and startsWith() to search characters and substrings within strings in Java.Searching for a Character in a
5 min read
Sort a string according to the frequency of characters Given a string str, the task is to sort the string according to the frequency of each character, in ascending order. If two elements have the same frequency, then they are sorted in lexicographical order.Examples: Input: str = "geeksforgeeks" Output: forggkksseeee Explanation: Frequency of character
14 min read
Smallest alphabet greater than a given character Given a list of sorted characters consisting of both Uppercase and Lowercase Alphabets and a particular target value, say K, the task is to find the smallest element in the list that is larger than K. Letters also wrap around. For example, if K = 'z' and letters = ['A', 'r', 'z'], then the answer wo
10 min read
Sort groups of numbers and characters separately in a String Given string str of alphanumeric characters, the task is to sort the similar group of consecutive characters separately and print the modified string i.e. all consecutive groups of digits and alphabetical characters will be sorted separately. Examples: Input: str = "121geeks21" Output: 112eegks12 Ex
6 min read