1、冒泡排序
package com.king.demo;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {1,99,2,3,16,100,97,65};
System.out.println("***************************排序前***************************");
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("***************************排序后***************************");
for(int i = 0;i<arr.length-1;i++) {
boolean flag = true;
for(int j = 0;j<arr.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] =temp;
flag = false;
}
}
if(flag) {
break;
}
}
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}
2、选择排序
package com.king.demo;
public class SelectorSort {
public static void main(String[] args) {
int[] arr = {1,99,2,3,16,100,97,65};
System.out.println("***************************排序前***************************");
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("***************************排序后***************************");
for(int i = 0;i < arr.length-1;i++) {
//定义一个最小数索引
int min_index=i;//假定
for(int j=i+1;j<arr.length;j++) {
//比较
if(arr[j] < arr[min_index]) {
//更新最小数的索引
min_index = j;
}
}
//交换
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
二分查找法
public class HalfSerch {
public static void main(String[] args) {
int[] arr = {3,7,19,38,55,88};
for (int i : arr) {
System.out.print(i+" ");
}
System.out.println();
System.out.println("请输入你要找的数字:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int index = search(arr, num);
if (index!=-1){
System.out.println("这个数的索引是:"+index+",值是:"+arr[index]);
}else {
System.out.println("没有这个数...");
}
}
private static int search(int[] arr, int key) {
if (arr.length<2){
return -1;
}
int left = 0;
int right = arr.length-1;
while (left<=right){
int mid = (left+right)/2;
if (arr[mid]==key){
return mid;
} else if (arr[mid] > key) {
right = mid - 1;
}else {
left = mid +1;
}
}
return -1;
}
}
冒泡排序与选择排序对比:基础排序算法详解
本文介绍了Java实现的冒泡排序和选择排序算法,通过实例展示了它们的工作原理。同时,讨论了二分查找法在查找数组元素的应用。重点在于理解这两种简单但基础的排序算法,并与高效查找方法进行对比。
593

被折叠的 条评论
为什么被折叠?



