A Problem in Many Binary Search Implementations – Searching and Sorting – The above looks fine except one subtle thing, the expression “m = (l+r)/2”. It fails for large values of l and r. Specifically, it fails if the sum of low and high is greater than the maximum positive int value (231– 1).
Algorithm
Find k closest elements to a given value – searching and sorting – start from the first element and search for the crossover point (The point before which elements are smaller than or equal to X and after which elements are greater).
QuickSort on Doubly Linked List – Searching and sorting -. The idea is simple, we first find out pointer to last node. Once we have pointer to last node, we can recursively sort the linked list using pointers to first and last nodes of linked list.
QuickSort on Singly Linked List – Searching and sorting – Quick Sort on Doubly Linked List is discussed here.In Singly linked list was given as an exercise. Following is C++ implementation for same.
Sort n numbers in range from 0 to n^2 – 1 in linear time – Searching and sorting – If we use Counting Sort, it would take O(n^2) time as the given range is of size n^2. Using any comparison based sorting like Merge Sort, Heap Sort, .. etc would take O(nLogn) time.
Iterative Quick Sort – Searching and Sorting – Partition process is same in both recursive and iterative. The same techniques to choose optimal pivot can also be applied to iterative version.
Sort a nearly sorted (K sorted) array – Searching and sorting – Given an array of n elements, where each element is at most k away from its target position.
Merge Sort for Linked Lists – Searching and Sorting – Merge sort is often preferred for sorting a linked list. The slow random-access performance of a linked list makes some other algorithms (such as quicksort) perform poorly, and others (such as heapsort) completely impossible.
Find the Minimum length Unsorted Subarray, sorting which makes the complete array sorted -Searching and sorting – Given an unsorted array arr[] of size n. find the minimum length subarray arr[s..e]
Lower bound for comparison based sorting algorithms – Searching and sorting – A sorting algorithm is comparison based if it uses comparison operators to find the order between two numbers.