From 52748dffe192c7b49e4bfb99fe8d80763c63a093 Mon Sep 17 00:00:00 2001 From: TUSHAR PANJA <76436310+tusharpanja@users.noreply.github.com> Date: Sat, 1 Apr 2023 15:26:31 +0530 Subject: [PATCH] Update AlignedTableFloat32.java just accept the merge sort algorithm it does not do anything though, I will show it in my resume that "I commented in twitter algo" it will give me a huge cv boost. Thank you in advance. Have a nice day :) --- .../ann/faiss/swig/AlignedTableFloat32.java | 88 ++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/ann/src/main/java/com/twitter/ann/faiss/swig/AlignedTableFloat32.java b/ann/src/main/java/com/twitter/ann/faiss/swig/AlignedTableFloat32.java index 9758bd20d..c6f31ba0e 100644 --- a/ann/src/main/java/com/twitter/ann/faiss/swig/AlignedTableFloat32.java +++ b/ann/src/main/java/com/twitter/ann/faiss/swig/AlignedTableFloat32.java @@ -20,12 +20,98 @@ public class AlignedTableFloat32 { protected static long getCPtr(AlignedTableFloat32 obj) { return (obj == null) ? 0 : obj.swigCPtr; } + // Merge sort in Java +class MergeSort { + + // Merge two subarrays L and M into arr + void merge(int arr[], int p, int q, int r) { + + // Create L ← A[p..q] and M ← A[q+1..r] + int n1 = q - p + 1; + int n2 = r - q; + + int L[] = new int[n1]; + int M[] = new int[n2]; + + for (int i = 0; i < n1; i++) + L[i] = arr[p + i]; + for (int j = 0; j < n2; j++) + M[j] = arr[q + 1 + j]; + + // Maintain current index of sub-arrays and main array + int i, j, k; + i = 0; + j = 0; + k = p; + + // Until we reach either end of either L or M, pick larger among + // elements L and M and place them in the correct position at A[p..r] + while (i < n1 && j < n2) { + if (L[i] <= M[j]) { + arr[k] = L[i]; + i++; + } else { + arr[k] = M[j]; + j++; + } + k++; + } + + // When we run out of elements in either L or M, + // pick up the remaining elements and put in A[p..r] + while (i < n1) { + arr[k] = L[i]; + i++; + k++; + } + + while (j < n2) { + arr[k] = M[j]; + j++; + k++; + } + } + + // Divide the array into two subarrays, sort them and merge them + void mergeSort(int arr[], int l, int r) { + if (l < r) { + + // m is the point where the array is divided into two subarrays + int m = (l + r) / 2; + + mergeSort(arr, l, m); + mergeSort(arr, m + 1, r); + + // Merge the sorted subarrays + merge(arr, l, m, r); + } + } + + // Print the array + static void printArray(int arr[]) { + int n = arr.length; + for (int i = 0; i < n; ++i) + System.out.print(arr[i] + " "); + System.out.println(); + } + + // Driver program + public static void main(String args[]) { + int arr[] = { 6, 5, 12, 10, 9, 1 }; + + MergeSort ob = new MergeSort(); + ob.mergeSort(arr, 0, arr.length - 1); + + System.out.println("Sorted array:"); + printArray(arr); + } +} @SuppressWarnings("deprecation") protected void finalize() { delete(); } - + public synchronized void delete() { if (swigCPtr != 0) { if (swigCMemOwn) {