JAVA冒泡排序、选择排序
- 冒泡排序
package sort;
public class BubbleSort {
public static void main(String[] args) {
//冒泡排序
int[] arr = {22,33,8,66,99,77,7};
System.out.print("排序前:[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
System.out.println(arr[i]+"]");
} else {
System.out.print(arr[i]+",");
}
}
for (int i = 1; i < arr.length; i++) {
for (int j = 0; j < arr.length-i; j++) {
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.print("排序后:[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
System.out.println(arr[i]+"]");
} else {
System.out.print(arr[i]+",");
}
}
}
}
运行结果:
- 选择排序
package sort;
public class SelectSort {
public static void main(String[] args) {
//选择排序
int[] arr = {22,33,8,66,99,77,7};
System.out.print("排序前:[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
System.out.println(arr[i]+"]");
} else {
System.out.print(arr[i]+",");
}
}
for (int i = 0; i < arr.length; i++) {
int index = i;
for (int j = index + 1; j < arr.length; j++) {
if (arr[index] > arr[j]) {
index = j;
}
if (index != i) {
int temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
}
}
System.out.print("排序前:[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
System.out.println(arr[i]+"]");
} else {
System.out.print(arr[i]+",");
}
}
}
}
运行结果:
3. 普通查找
package sort;
public class Find {
//查找
public static void main(String[] args) {
int num = 33;
int index = -1;
int[] arr = {22,33,8,66,99,77,7,22,8,33};
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("您查找的数字不存在");
} else {
System.out.println("您查找的数字第一次出现在数组中的下标是"+index);
}
}
}
运行结果:
- 二分法查找(有序的数组)
package sort;
public class BinarySearch {
// 二分法查找
public static void main(String[] args) {
int[] arr = { 1, 11, 30, 33, 66, 88, 99};
int num = 88;
int start = 0;
int end = arr.length-1;
int mid = (start + end) / 2;
int index = -1;
while (start <= end) {
if (num > arr[mid]) {
start = mid + 1;
mid = (start + end) / 2;
} else if (num < arr[mid]) {
end = mid - 1;
mid = (start + end) / 2;
} else {
index = mid;
break;
}
}
if (index == -1) {
System.out.println("该数字在本数组中的下标不存在");
} else {
System.out.println("该数字在本数组中的下标是" + index);
}
}
}
运行结果:
5. 反转
package sort;
public class Exchange {
public static void main(String[] args) {
//反转
int[] arr = {22,33,8,66,99,77,7};
System.out.print("反转前:[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
System.out.println(arr[i]+"]");
} else {
System.out.print(arr[i]+",");
}
}
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
System.out.print("反转后:[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
System.out.println(arr[i]+"]");
} else {
System.out.print(arr[i]+",");
}
}
}
}
运行结果: