🗂️
Data Structures
  • Data Structures Manual
  • Arrays
    • Array ADT
    • Linear Search
    • Binary Search
    • Some More Basic Operations
    • Reversing an Array
    • Operations in a Sorted Array
    • Merging Two Arrays
    • Set Operations
    • Finding Missing Elements
    • Duplicates in an Array
    • Getting a Pair whose Sum = K
    • Finding Max & Min in Single Scan
  • Strings
    • Finding the Length of a String
    • Changing Cases in a String
    • Finding Number of Vowels, Consonants & Words
    • Reversing a String
    • Checking for Palindrome
    • Duplicates in a String
    • Checking if Strings are Anagrams
    • Permutations of a String
  • Singly Linked List
    • Displaying the Nodes
    • Counting the Nodes
    • Sum of all Nodes
    • Finding the Maximum Element
    • Searching in a Node
    • Inserting a Node
    • Inserting a Node in Sorted List
    • Deleting a Node
    • Checking if List is Sorted
    • Removing Duplicates from a List
    • Reversing a Linked List
    • Concatenating Two Lists
    • Detecting a Loop in Linked List
    • Merge Two Sorted Lists
    • Finding the Middle Node
  • Cirular Linked List
    • Displaying the Nodes
    • Inserting a Node
    • Deleting a Node
  • Doubly Linked List
    • Inserting a Node
    • Deleting a Node
    • Reversing a Doubly Linked List
    • Circular Doubly Linked List
  • Stack
    • Stack Using Array
    • Stack Using Linked List
    • Balancing Parenthesis
    • Infix to Postfix
    • Evaluation of Postfix Expression
  • Queue
    • Queue using Array
    • Queue using Linked List
    • Double Ended Queue
  • Binary Tree
    • Creating a Binary Tree using Queue
    • Recursive Tree Traversals
    • Iterative Tree Traversals
    • Level Order Traversal
    • Counting Nodes in a Binary Tree
    • Finding the Height of Tree
    • Finding Sum of All Nodes
  • Binary Search Tree
    • Searching in a BST
    • Inserting in a BST
    • Deleting in a BST
  • AVL Tree
    • Inserting in an AVL Tree
    • AVL Tree Rotations
    • Deleting in an AVL Tree
  • Heap
    • Inserting in a Heap
    • Deleting in a Heap
    • Heapify
Powered by GitBook
On this page
  • Inserting in a Sorted Array :
  • Checking if an Array is Sorted :
  • Rearranging an Array

Was this helpful?

  1. Arrays

Operations in a Sorted Array

Inserting in a sorted array, checking if an array is sorted and shifting negative elements to the left of array.

Inserting in a Sorted Array :

To insert a new element in a sorted array, keep shifting the rightmost elements to the right by 1 until the element to be inserted is not greater than the element to be shifted.

void insertInSorted(int a[], int n, int x) {

    int i = n-1; // Shift from right
    
    // Shifting elements to the right
    while (i >= 0 && a[i] > x) {
        a[i+1] = a[i];
        i--;
    }
    
    // Inserting element in proper position
    a[i+1] = x;
    
}

Checking if an Array is Sorted :

To check if an array is sorted, compare the ith element with (i+1)th element and check if ith element is greater than (i+1)th element. If it is so, this means that the array is not sorted.

int isSorted(int a[], int n) {

    // Iterate till length - 1
    for(int i = 0; i < n-1; i++) {
        // Case for unsorted array
        if (a[i] > a[i+1]) {
            return 0;
        }
    }
    return 1;
    
}

Rearranging an Array

In this operation, all the negative numbers in the array are moved to the left side of the array while all the positive numbers are moved to the right side of the array.

void rearrange(int a[], int n) {
    
    int j = 0;
    for (int i = 0; i < n; i++) {
        // If negative number => Swap a[i] and a[j]
        if (a[i] < 0) {
            if (i != j) {
                swap(&a[i], &a[j]);
            }
            j++;
        }
    }
    
}

Contributed by Nitin Ranganath

PreviousReversing an ArrayNextMerging Two Arrays

Last updated 5 years ago

Was this helpful?