 GeeksforGeeks App
Open App Browser
Continue

# 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 ``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] = { ``"GeeksforGeeks"``, ``"Quiz"``, ``"Practice"``,``                        ``"Gblogs"``, ``"Coding"` `};``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr);` `    ``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 = { ``"GeeksforGeeks"``, ``"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 = { ``"GeeksforGeeks"``, ``"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 ``=` `[``"GeeksforGeeks"``, ``"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 = [``"GeeksforGeeks"``, ``"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 GeeksforGeeks
String 4 is Practice
String 5 is Quiz```

Time Complexity: O(n2
Auxiliary Space: O(MAX) or O(100)

This article is contributed by Rahul Agrawal. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.