冒泡排序算法
冒泡排序他是通过双重循环对每一个值进行比较,将小的值向后移动,以达到最终排序的结果,他的时间复杂度为O(n^2)。
java
/**
* 冒泡排序
* @param arr
*/
public static void bubbleSort(int[] arr){
int l =arr.length;
for (int i = 0; i <l-1 ; i++) {
for (int j = 0; j <l-i-1 ; j++) {
if (arr[j]>arr[j+1]){
int temp =arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
选择排序算法
选择排序也是进行两次循环遍历,获取最大或最小的值,然后进行交换。他的时间复杂度也为O(n^2)。
java
/**
* 选择排序算法
* @param arr
*/
public static void selectSort(int[] arr){
int l =arr.length;
for (int i = 0; i <l-1 ; i++) {
int minIndex =i;
for (int j = i+1; j <l ; j++) {
if (arr[j]<arr[minIndex]){
minIndex=j;
}
}
int temp =arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
}
插入排序算法
插入排序是将一个数在前面已经排好的有序列表中进行遍历,插入到符合顺序的地方。以此来获得一个长度+1的有序列表。他的时间复杂度也为O(n^2)。
java
/**
* 插入排序算法
* @param arr
*/
public static void insertSort(int[] arr){
int l =arr.length;
for (int i = 1; i <l ; i++) {
int insert=arr[i];
int j =i-1;
while (j>=0&&arr[j]>insert){
arr[j+1]=arr[j];
j--;
}
arr[j+1]=insert;
}
}
未完待续......