insertionSort(
intarr[],
intleft,
intright) {
12 for(
inti = left + 1; i <= right; i++) {
13 const inttemp = arr[i];
15 while(j >= left && arr[j] > temp) {
24void merge(
intarr[],
intl,
intm,
intr) {
26 const intlen1 = m -
l+ 1, len2 = r - m;
27 int*left =
new int[len1], *right =
new int[len2];
28 for(
inti = 0; i < len1; i++) left[i] = arr[l + i];
29 for(
inti = 0; i < len2; i++) right[i] = arr[m + 1 + i];
36 while(i < len1 && j < len2) {
37 if(left[i] <= right[j]) {
65voidtimSort(
intarr[],
intn) {
67 for(
inti = 0; i < n; i += RUN)
68insertionSort(arr, i, std::min((i + 31), (n - 1)));
72 for(
intsize = RUN; size < n; size = 2 * size) {
76 for(
intleft = 0; left < n; left += 2 * size) {
79 const intmid = std::min((left + size - 1), (n - 1));
80 const intright = std::min((left + 2 * size - 1), (n - 1));
83 merge(arr, left, mid, right);
90 for(
inti = 0; i < n; i++) printf(
"%d ", arr[i]);
91std::cout << std::endl;
100 constexpr intN = 65;
103std::iota(arr, arr + N, 0);
104std::reverse(arr, arr + N);
105assert(!std::is_sorted(arr, arr + N));
108assert(std::is_sorted(arr, arr + N));
115 intarr[] = {5, 21, 7, 23, 19};
116 const intn =
sizeof(arr) /
sizeof(arr[0]);
117printf(
"Given Array is\n");
122printf(
"After Sorting Array is\n");
double k(double x)
Another test function.
double l(double x)
Another test function.
int main()
Main function.
void merge(int *arr, int l, int m, int r)
void printArray(T *arr, int sz)
Testcases to check Union of Two Arrays.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4