Sorting Strings using Bubble Sort
Given an array of strings arr[]. Sort given strings using Bubble Sort and display the sorted array.
In Bubble Sort, the two successive strings arr[i] and arr[i+1] are exchanged whenever arr[i]> arr[i+1]. The larger values sink to the bottom and are hence called sinking sort. At the end of each pass, smaller values gradually “bubble” their way upward to the top and hence called bubble sort.
After all the passes, we get all the strings in sorted order.
Let us look at the code snippet
C++
// C++ implementation #include <bits/stdc++.h> using namespace std; #define MAX 100 void sortStrings( char arr[][MAX], int n) { char temp[MAX]; // Sorting strings using bubble sort for ( int i = 0; i < n - 1; i++) { for ( int j = 0; j < n - 1 - i; j++) { if ( strcmp (arr[j], arr[j + 1]) > 0) { strcpy (temp, arr[j]); strcpy (arr[j], arr[j + 1]); strcpy (arr[j + 1], temp); } } } } int main() { char arr[][MAX] = { "w3wiki" , "Quiz" , "Practice" , "Gblogs" , "Coding" }; int n = sizeof (arr) / sizeof (arr[0]); sortStrings(arr, n); printf ( "Strings in sorted order are : " ); for ( int i = 0; i < n; i++) printf ( "\n String %d is %s" , i + 1, arr[i]); return 0; } |
Java
// Java implementation class GFG { static int MAX = 100 ; public static void sortStrings(String[] arr, int n) { String temp; // Sorting strings using bubble sort for ( int j = 0 ; j < n - 1 ; j++) { for ( int i = j + 1 ; i < n; i++) { if (arr[j].compareTo(arr[i]) > 0 ) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } } // Driver code public static void main(String[] args) { String[] arr = { "w3wiki" , "Quiz" , "Practice" , "Gblogs" , "Coding" }; int n = arr.length; sortStrings(arr, n); System.out.println( "Strings in sorted order are : " ); for ( int i = 0 ; i < n; i++) System.out.println( "String " + (i + 1 ) + " is " + arr[i]); } } // This code is contributed by // sanjeev2552 |
C#
// C# implementation using System; class GFG { static int MAX = 100; public static void sortStrings(String[] arr, int n) { String temp; // Sorting strings using bubble sort for ( int j = 0; j < n - 1; j++) { for ( int i = j + 1; i < n; i++) { if (arr[j].CompareTo(arr[i]) > 0) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } } // Driver code public static void Main(String[] args) { String[] arr = { "w3wiki" , "Quiz" , "Practice" , "Gblogs" , "Coding" }; int n = arr.Length; sortStrings(arr, n); Console.WriteLine( "Strings in sorted order are : " ); for ( int i = 0; i < n; i++) Console.WriteLine( "String " + (i + 1) + " is " + arr[i]); } } // This code is contributed by Princi Singh |
Python3
# Python Implementation def compare(a, b): return ((a < b) - (a > b)) def sort_string(arr, n): temp = "" # Sort string using the bubble sort for i in range (n - 1 ): for j in range (i + 1 , n): if compare(arr[j], arr[i]) > 0 : temp = arr[j] arr[j] = arr[i] arr[i] = temp print ( "String in sorted order are: " ) for i in range (n): print (f 'Strings {i + 1} is {arr[i]}' ) # Driver code arr = [ "w3wiki" , "Quiz" , "Practice" , "Gblogs" , "Coding" ] n = len (arr) sort_string(arr, n) # This code is contributed by Prince Kumar |
Javascript
// JavaScript implementation function sortStrings(arr) { let temp; // Sorting strings using bubble sort for (let j = 0; j < arr.length - 1; j++) { for (let i = j + 1; i < arr.length; i++) { if (arr[j].localeCompare(arr[i]) > 0) { temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } } // Driver code let arr = [ "w3wiki" , "Quiz" , "Practice" , "Gblogs" , "Coding" ]; sortStrings(arr); console.log( "Strings in sorted order are : " ); for (let i = 0; i < arr.length; i++) { console.log(`String ${i + 1} is ${arr[i]}`); } // This code is contributed by lokeshmvs21. |
Output
Strings in sorted order are : String 1 is Coding String 2 is Gblogs String 3 is w3wiki String 4 is Practice String 5 is Quiz
Time Complexity: O(n2)
Auxiliary Space: O(MAX) or O(100)
Contact Us