排序
十大内部排序:
选择排序:直接选择排序、堆排序
交换排序:冒泡排序、快速排序
插入排序:直接插入排序、折半插入排序、Shell排序(希尔排序)
归并排序
桶式排序
基数排序
算法的5大特征:输入、输出、有穷性、确定性、可行性
冒泡排序
public static void main(String[] args) {
int[] arr=new int[] {10,20,3,58,43,18,87,20};
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
}
Arrays 工具类的使用
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜素)的各种方法。
函数 | 作用 |
---|---|
boolean equals(int[] a,int[] b) | 判断两个数组是否相等 |
String toString(int[] a) | 输出数组信息 |
void fill(int[] a,int val) | 将指定值填充到数组中 |
void sort(int[] a) | 对数组惊醒排序 |
int binarySearch(int[] a,int key) | 对排序后的数组进行二分法检索指定值 |
import java.util.Arrays;//导入类
//boolean equals(int[] a,int[] b):判断两个数组是否相等
int[] arr1 = new int[] {1,2,3,4};
int[] arr2 = new int[] {1,3,2,4};
boolean isEquals=Arrays.equals(arr1, arr2);
System.out.println(isEquals);
//String toString(int[] a):输出数组信息
System.out.println(Arrays.toString(arr1));
//void fill(int[] a,int val):填充
Arrays.fill(arr1, 10);
System.out.println(Arrays.toString(arr1));
//void sort(int[] a):排序
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
//int binarySearch(int[] a,int key):二分查找
int[] arr3 = new int[] {-98,-34,2,34,54,66,79,105,210,333};
int index = Arrays.binarySearch(arr3, 10);
System.out.println(index);//负数则为未找到