用Java代码实现冒泡排序、插入排序、查找排序算法
//冒泡排序
class SortingAlgorithm {
int[] arr;
// 数组的初始化
public SortingAlgorithm(int[] arr) {
this.arr = arr;
arr = new int[arr.length + 1];
}
// 冒泡排序
public void bubbleSort() {
System.out.println("-------冒泡排序------");
for (int j = 0; j < arr.length - 1; j++) {
for (int i = 0; i < arr.length - 1; i++) {
// 从小到大的排序
if (arr[i] > arr[i + 1]) {
// if(arr[i]<arr[i+1]),从大到小的排序
int tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
}
// 测试排序后的数组,结果为:12 23 24 45 65 12 14 87
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
// 插入排序
class InsertSort {
int[] arrf;
public InsertSort(int[] arrf) {
this.arrf = arrf;
arrf = new int[arrf.length];
}
public void sortFind() {
System.out.println("------插入排序------");
System.out.println("---请输入要插入的数:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
in.close();
int[] extended = new int[arrf.length + 1];// 准备扩容的数组
System.arraycopy(arrf, 0, extended, 0, arrf.length);// 把要插入的数据复制到扩容的数组里
extended[extended.length - 1] = num;
// 用扩容的数组来准备插入数据,假如数据是从数组的最后面插入
for (int i = extended.length - 1; i > 0; i--) {
if (extended[i] < extended[i - 1]) {
int tmp = extended[i];
extended[i] = extended[i - 1];
extended[i - 1] = tmp;
} else {
break;
}
}
// 打印数组内容
for (int i = 0; i < extended.length; i++) {
System.out.print(extended[i] + " ");
}
}
}
// 查找排序
class FindSort {
int[] arr;
public FindSort(int[] arr) {
this.arr = arr;
}
public void find() {
Scanner in = new Scanner(System.in);
System.out.println("请输入你要找的学生姓名:");
String name = in.nextLine();
String[] arr = { "张三", "李思", "王五", "壁虎" };
boolean flag = false;
// 开始进行查找,找到了就标记为true
for (int i = 0; i < arr.length; i++) {
if (name.equals(arr[i])) {
flag = true;
break;
}
}
if (flag == true) {
System.out.println("找到了");
} else {
System.out.println("没有这个学员存在");
}
}
}
``//测试代码
int[] arr={23,12,45,24,87,65,12,14};
SortingAlgorithm sa = new SortingAlgorithm(arr);
sa.bubbleSort();
InsertSort fs = new InsertSort(arr);
fs.sortFind();
//测试结果
-------冒泡排序------
12 12 14 23 24 45 65 87
------插入排序------
---请输入要插入的数:
43
12 12 14 23 24 43 45 65 87
“`