Be the first user to complete this post

Add to List 
Sort an Given Array in the order defined by another array
Objective: Given an array of integers, write an algorithm to sort it according to the order defined by another array.
Input: An Array of Integers
Example:
Input Array : 2 6 9 1 4 4 2 1 10 13 5 7 8 DefinedArray : 1 2 4 6 Output : 1 1 2 2 4 4 6 5 7 8 9 10 13
Appraoch:
Method 1: Sort and Search
 Create an Aux array and copy all the elements of arrA
 Create another boolean array, visited[] of size arrA[]
 Initialize visited[] = false
 Sort the Aux array using Merge sort.
 Navigate through the arrB, taking one element at a time, say x
 perform binary search of x on Aux array and find the first occurrence of x
 if x is found, copy it to arrA, make visited[] = true
 Do linear navigation on Aux array till you find x, copy all these to arrA and mark visited[] = true
 When arrB is over, copy rest of the elements from Aux to arrA.
Method 2: Using Hashing
 Insert all the elements of arrA in hash Table,
 Element as key and its count as its value
 Navigate through arrB, check element's presence in Hash table
 If it is present then takes its value (count) and insert into arrA.
 Once arrB is completed, take rest of the elements from Hash table
 Sort Them and insert them into arrB.
Code:
Original Array : 2 6 9 1 4 4 2 1 10 13 5 7 8 Defined Array : 1 2 4 6 Output Array using Sort and search: 1 1 2 2 4 4 6 5 7 8 9 10 13 Output Array using Hashing : 1 1 2 2 4 4 6 5 7 8 9 10 13
Also Read: