Big O
BAN USER//
void intersectionOfSortedArrays(int array1[], int n1 /*length of first array*/,
int array2[], int n2 /*length of second array*/) {
int i = 0, j = 0;
while (i < n1 && j < n2) {
if (array1[i] < array2[j]) {
++i;
} else if (array1[i] > array2[j]) {
++j;
} else { /* if array1[i] == array2[j] */
printf("%d \n", array1[i]);
++i;
++j;
}
}
}
- Big O September 07, 2013StringBuilder text = new StringBuilder("This is test");
revString(text);
private static void revString(StringBuilder text) {
revRecu(text, 0, text.length() -1);
System.out.println(text);
}
private static void revRecu(StringBuilder text, int i, int j) {
if (i < j) {
char temp = text.charAt(i);
text.setCharAt(i, text.charAt(j));
text.setCharAt(j, temp);
revRecu(text, i+1, j-1);
}
}
private static void findFistAndLastIndex(int[] array, int key) {
int low = 0;
int high = array.length - 1;
int firstIndex = -1;
int lastIndex = -1;
while (low < high ) {
int mid = low + (high - low)/ 2;
if (array[mid] < key) {
low = mid + 1;
} else if (array[mid] > key) {
high = mid - 1;
} else {
firstIndex = findFirstIndex(array, low, mid);
lastIndex = findLastIndex(array, mid, high);
break;
}
}
System.out.println(firstIndex);
System.out.println(lastIndex);
}
private static int findFirstIndex(int[] array, int low, int high) {
int index = high;
int key = array[high];
while (low < high) {
int mid = low + (high - low )/2;
if (array[mid] == key) {
index = mid;
high = mid - 1;
} else if (array[mid] < key) {
low = mid + 1;
}
if (array[low] == key) {
index = low;
break;
}
}
return index;
}
private static int findLastIndex(int[] array, int low, int high) {
int index = low;
int key = array[low];
while (low < high) {
int mid = low + (high - low )/2;
if (array[mid] == key) {
index = mid;
low = mid + 1;
} else if (array[mid] > key) {
high = mid -1;
}
if (array[high] == key) {
index = high;
break;
}
}
return index;
}
- Big O September 07, 2013