ソートされたリストをマージ
public class Main {
public static void main(String[] args) {
int[] arr2 = {1,3,5,7};
int[] arr1 = {4, 6, 8, 10, 12};
ArraySort sort = new ArraySort();
sort.sort(arr1, arr2);
}
}
class ArraySort {
public void sort(int[] arr1, int[] arr2) {
int[] arr3 = new int[arr1.length + arr2.length];
int i = 0, j = 0, k = 0;
boolean flag = true;
while (flag) {
if (arr1[i] < arr2[j]) {
arr3[k] = arr1[i];
i += 1;
} else if (arr1[i] > arr2[j]) {
arr3[k] = arr2[j];
j += 1;
}
k += 1;
if(i == arr1.length){
for (int s = j; s < arr2.length; s++) {
arr3[k] = arr2[s];
k+=1;
}
flag = false;
}else if(j==arr2.length){
for (int s = i; s < arr1.length; s++) {
arr3[k] = arr1[s];
k+=1;
}
flag = false;
}
}
this.show(arr3);
}
public void show(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
}
合併の順序なしリスト
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 3, 5, 7, 9};
int[] arr2 = {2, 4, 6, 8, 10};
ArraySort sort = new ArraySort();
sort.sort(arr1, arr2);
}
}
class ArraySort {
public void sort(int[] arr1, int[] arr2) {
int len = arr1.length;
int[] arr3 = new int[len + arr2.length];
for (int i = 0; i < len; i++) {
arr3[i] = arr1[i];
}
for (int i = 0; i < arr2.length; i++) {
if (!isExist(arr3, arr2[i])) {
arr3[len + i] = arr2[i];
}
}
show(arr3);
}
public boolean isExist(int[] arr, int b) {
boolean reslt = false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == b) {
reslt = true;
}
}
return reslt;
}
public void show(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
}
リニア反転表
public class Main {
public static void main(String[] args) {
int[] arr1 = {1, 3, 5, 7, 9};
ArraySort sort = new ArraySort();
sort.sort(arr1);
}
}
class ArraySort {
public void sort(int[] arr) {
int[] arr1 = new int[arr.length];
int j = 0;
for (int i = arr.length - 1; i > -1; i--) {
arr1[j] = arr[i];
j += 1;
}
this.show(arr1);
}
public void show(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
}