Skip to content
Related Articles

Related Articles

Improve Article

Sort an array which contain 1 to n values

  • Difficulty Level : Easy
Geek Week

You have given an array which contain 1 to n element, your task is to sort this array in an efficient way and without replace with 1 to n numbers.
Examples : 
 

Input : arr[] = {10, 7, 9, 2, 8, 
                 3, 5, 4, 6, 1};
Output : 1 2 3 4 5 6 7 8 9 10

 

Native approach : 
Sort this array with the use of any type of sorting method. it takes O(nlogn) minimum time.
Efficient approach : 
Replace every element with it’s position. it takes O(n) efficient time and give you the sorted array. Let’s understand this approach with the code below. 
 

C++




// Efficient C++ program to sort an array of
// numbers in range from 1 to n.
#include <bits/stdc++.h>
 
using namespace std;
 
// function for sort array
void sortit(int arr[], int n)
{
    for (int i = 0; i < n; i++) {
      arr[i]=i+1;
    }
}
 
// Driver code
int main()
{
    int arr[] = { 10, 7, 9, 2, 8, 3, 5, 4, 6, 1 };
    int n = sizeof(arr) / sizeof(arr[0]);
 
    // for sort an array
    sortit(arr, n);
 
    // for print all the element in sorted way
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";   
}

Java




// Efficient Java program to sort an
// array of numbers in range from 1
// to n.
import java.io.*;
import java.util.*;
 
public class GFG {
     
         
    // function for sort array
    static void sortit(int []arr, int n)
    {
        for (int i = 0; i < n; i++)
        {
            arr[i]=i+1;
     
             
        }
    }
     
    // Driver code
    public static void main(String args[])
    {
        int []arr = {10, 7, 9, 2, 8,
                            3, 5, 4, 6, 1};
        int n = arr.length;
     
        // for sort an array
        sortit(arr, n);
     
        // for print all the
        // element in sorted way
        for (int i = 0; i < n; i++)
            System.out.print(arr[i] + " ");
    }
}
 
// This code is contributed by Manish Shaw
// (manishshaw1)

Python3




# Python3 program to sort an array of
# numbers in range from 1 to n.
 
# function for sort array
def sortit(arr,n):
    for i in range(n):
        arr[i] = i+1
 
# Driver code
if __name__=='__main__':
    arr = [10, 7, 9, 2, 8, 3, 5, 4, 6, 1 ]
    n = len(arr)
 
    # for sort an array
    sortit(arr,n)
 
    # for print all the element
    # in sorted way
    for i in range(n):
        print(arr[i],end=" ")
  
# This code is contributed by
# Shrikant13

C#




// Efficient C# program to sort an array of
// numbers in range from 1 to n.
using System;
using System.Collections.Generic;
 
class GFG {
     
         
    // function for sort array
    static void sortit(int []arr, int n)
    {
        for (int i = 0; i < n; i++)
        {
     
            arr[i]=i+1;
        }
    }
     
    // Driver code
    public static void Main()
    {
        int []arr = {10, 7, 9, 2, 8,
                      3, 5, 4, 6, 1};
        int n = arr.Length;
     
        // for sort an array
        sortit(arr, n);
     
        // for print all the
        // element in sorted way
        for (int i = 0; i < n; i++)
            Console.Write(arr[i] + " ");
    }
}
 
// This code is contributed by
// Manish Shaw (manishshaw1)

PHP




<?php
// Efficient PHP program to sort an
// array of numbers in range from 1 to n.
 
 
// function for sort array
function sortit(&$arr, $n)
{
    for ($i = 0; $i < $n; $i++)
    {
 
        $arr[$i]=$i+1; 
    }
}
 
// Driver code
$arr = array(10, 7, 9, 2, 8,
             3, 5, 4, 6, 1);
$n = count($arr);
 
// for sort an array
sortit($arr, $n);
 
// for print all the
// element in sorted way
for ($i = 0; $i < $n; $i++)
    echo $arr[$i]." ";
 
//This code is contributed by Manish Shaw
//(manishshaw1)
?>

Javascript




<script>
 
// Efficient JavaScript program to sort an array of
// numbers in range from 1 to n.
 
// function for sort array
function sortit(arr, n)
{
    for (let i = 0; i < n; i++) {
    arr[i]=i+1;
    }
}
 
// Driver code
 
    let arr = [ 10, 7, 9, 2, 8, 3, 5, 4, 6, 1 ];
    let n = arr.length;
 
    // for sort an array
    sortit(arr, n);
 
    // for print all the element in sorted way
    for (let i = 0; i < n; i++)
        document.write(arr[i] + " ");    
 
 
// This code is contributed by Surbhi Tyagi.
 
</script>
Output : 
1 2 3 4 5 6 7 8 9 10

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :