Merge Sort is another efficient sorting algorithm that follows the divide-and-conquer strategy. It divides the input array into two halves, recursively sorts each half, and then merges them back together.
Here’s how Merge Sort works:
Divide: Divide the unsorted array into two halves.
Conquer: Recursively sort each half.
Merge: Merge the two sorted halves into a single sorted array.
Base Case: The base case of the recursion is when the sub-array has zero or one element, in which case it is already considered sorted.
Quick Sort is a widely-used sorting algorithm known for its efficiency and simplicity. It follows the divide-and-conquer strategy to sort an array or list of elements.
Here’s how Quick Sort works:
Partitioning: Choose a pivot element from the array. Rearrange the array so that all elements less than the pivot come before it, and all elements greater than the pivot come after it. After this partitioning step, the pivot element is in its final sorted position.
intbinarySearch(vector nums, int x) {
int left =0;
int right = nums.size();
while (left <= right) {
int mid = left + (right - left) /2;
if (nums[mid] == x)
return mid;
if (nums[mid] < x)
left = mid +1;
else right = mid -1;
}
return-1;
}
publicclassBinarySearch {
publicstaticintsearch(int[] array, int target) {
int left = 0;
int right = array.length- 1;
while (left <= right) {
int mid = (left + right) / 2;
if (array[mid]== target) {
return mid;
} elseif (array[mid]> target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return-1;
}
}
Need to find out if a number contains another number? And you want better performance than converting to a string and then looping through that to find the key number? Well you’ve come to the right place!
Using a combination of the modulo operator and division it’s possible to pull the number apart one digit at a time until it reaches 0.
Implementation Using a Loop
defcheckNumberIfContainsKey(number, key):
while number >0:
if number %10== key:
returnTrue number = number //10returnFalse
Given an array of unsorted numbers nums and an integer target, find two integers in the array that sum to the target and return their indices.
There are three ways that I know of to solve this problem. Below you’ll find a description of each with some brief code examples. I would like to encourage you to try to implement your own solution first before scrolling down.
Solution 1: Brute Force
The first way, which is the brute force method, is to use nested loops. It tries every possible combination by looping over and take exponential time.