冒泡排序:
最简单的排序算法。基本思想是迭代地对输入序列中的第一个元素到最后一个元素进行两两比较,当需要师交换两个元素(位置)。该过程持续迭代值到在一堂排序过程中不需要交换操纵为止。
import java.util.Arrays;
public class BubbleSort {
public static int[] bubbleSort(int[] ts) {
int length = ts.length;
boolean flag = false;
for(int i = length - 1; i >= 0; i--) {
flag = true;
for(int j = 0; j < i; j++) {
if(ts[j] > ts[j + 1]) {
int tmp = ts[j];
ts[j] = ts[j + 1];
ts[j + 1] = tmp;
flag = false;
}
}
System.out.println(Arrays.toString(ts));
if(flag) {
System.out.println(length - i);
break;
}
}
return ts;
}
}
选择排序:
寻找序列中的最小值,
用当前位置的值交换最小值
对所有元素重复上述过程,知道整个序列排序完成
public class SelectSort {
public static int[] selectSort(int[] ts) {
int length = ts.length;
int min = 0;
for(int i = 0; i < length; i++) {
min = i;
for(int j = i; j < length; j++) {
if(ts[min] > ts[j]) {
min = j;
}
}
if(min != i) {
int tmp = ts[i];
ts[i] = ts[min];
ts[min] = tmp;
}
}
return ts;
}
}
插入排序:
遍历所有元素,每当遍历一个元素将讲该元素插入有序的序列,该序列由已经遍历的元素组成,重复该过程,直到所有输入元素都被选择一次。
public static int[] insertionSort(int[] arr) {
int length = arr.length;
int val = 0, tmp = 0;
if (length == 0 || length == 1) {
return arr;
}
for (int i = 1; i < length; i++) {
for (int j = i; j > 0 && arr[j - 1] > arr[j]; j--) {
tmp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = tmp;
}
}
return arr;
}