Big Sorting HackerRank Solution in C, C++, Java, Python

Consider an array of numeric strings where each string is a positive number with anywhere from  to 10^6 digits. Sort the array’s elements in non-decreasing, or ascending order of their integer values and return the sorted array.

Function Description

Complete the bigSorting function in the editor below.

bigSorting has the following parameter(s):

• string unsorted[n]: an unsorted array of integers as strings

Returns

• string[n]: the array sorted in numerical order

Input Format

The first line contains an integer,n, denoting the number of strings in unsorted.
Each of the n subsequent lines contains an integer string unsorted[i].

Constraints

• 1<=n<=2*10^5
• Each string is guaranteed to represent a positive integer without leading zeros.
• The total number of digits across all strings in unsorted is between 1 and 10^6 (inclusive).

Sample Input 0

6
31415926535897932384626433832795
1
3
10
3
5


Sample Output 0

1
3
3
5
10
31415926535897932384626433832795

Big Sorting HackerRank Solution in C

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int cmp(const void *p, const void *q)
{
char* s1 = *(char**)p;
char* s2 = *(char**)q;
int s1l=strlen(s1);
int s2l=strlen(s2);
if(s1l>s2l)
return 1;
if(s2l>s1l)
return -1;
int i,flag=0;
for(i=0;i<s1l;i++)
{
if(s1[i]==s2[i])
continue;
else
{
flag=1;
break;
}
}
if(flag)
{
return s1[i]-s2[i];
}
return 0;
}

int main(){
int n,i,tl;
scanf("%d\n",&n);
char* str[n];
char temp[1000001];
for(i=0;i<n;i++)
{
scanf("%s",temp);
tl=strlen(temp);
str[i]=malloc(sizeof(char)*(tl+1));
strcpy(str[i],temp);
}
qsort((void*)str,n,sizeof(str[0]),cmp);
for(i=0;i<n;i++)
printf("%s\n",str[i]);
return 0;
}

Big Sorting HackerRank Solution in C++

#include<iostream>
#include<fstream>
#include<math.h>
#include<algorithm>
#include<string>
#include<map>
#include<vector>
#include<queue>
#include<stack>
#include<sstream>
#include<set>

using namespace std;

#define forn(i,n) for(int i=0;i<(int)(n); i++)
#define forsn(i,s,n) for(int i=(s);i<(int)(n); i++)
#define esta(x,v) (find((v).begin(),(v).end(),(x)) !=  (v).end())
#define index(x,v) (find((v).begin(),(v).end(),(x)) - (v).begin())
#define debug(x) cout << #x << " = "  << x << endl
#define pb push_back
#define mp make_pair

typedef long long tint;
typedef unsigned long long utint;
typedef long double ldouble;

typedef vector<int> vint;

int toNumber (string s)
{
int Number;
if ( ! (istringstream(s) >> Number) ) Number = 0; // el string vacio lo manda al cero
return Number;
}

string toString (int number)
{
ostringstream ostr;
ostr << number;
return  ostr.str();
}

int main (){
int n;
cin>>n;
vector< pair<int, string> > v;
forn(i,n){
string s;
cin>>s;
v.pb(mp((int)s.size(), s));
}
sort(v.begin(), v.end());
forn(i, n){
cout<<v[i].second<<endl;
}

}

Big Sorting HackerRank Solution in Java

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Solution {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String[] unsorted = new String[n];
for (int unsorted_i = 0; unsorted_i < n; unsorted_i++) {
unsorted[unsorted_i] = in.next();
}

Arrays.sort(unsorted, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if (o1.length() < o2.length()) {
return -1;
}
if (o1.length() > o2.length()) {
return 1;
}
return o1.compareTo(o2);
}
});

for (String s : unsorted) {
System.out.println(s);
}
}
}

Big Sorting HackerRank Solution in Python

#!/bin/python

import sys

a=  []
n = int(raw_input().strip())
unsorted = []
unsorted_i = 0
for unsorted_i in xrange(n):
unsorted_t = str(raw_input().strip())
unsorted.append(unsorted_t)
y=sorted(unsorted,key=int)
for i in range(0,len(y)):
print y[i]

Big Sorting HackerRank Solution in C#

using System;

class Solution
{
static void Main()
{
string[] a = new string[n];

for (int i = 0; i < n; ++i) a[i] = Console.ReadLine();

Array.Sort(a, (s1, s2) =>
{
int l = s1.Length - s2.Length;
return (l != 0) ? l : string.Compare(s1, s2, StringComparison.OrdinalIgnoreCase);
});

for (int i = 0; i < n; ++i) Console.WriteLine(a[i]);
}
}

Attempt Big Sorting HackerRank Challenge

Next HackerRank Challenge Solution