(一)冒泡排序
public class BubbleSort{
public static void main(String[] args) {
/**
* 冒泡排序:
* 每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素。
* 5,18,22,9,11,13
* 5,18,9,11,13,22
* 5,9,11,13,18,22
*/
int[] arr=new int[]{5,18,22,9,11,13};
int temp;
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-i-1; j++) {
if(arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
(二)选择排序
public class SelectSort {
public static void main(String[] args) {
/**
* 选择排序:
* 每一趟从待排序序列选择一个最小的元素放到已排好序序列的末尾,剩下的为待排序序列,
* 重复上述步骤直到完成排序。
* 5,18,22,9,11,13
* (5,18,22,9,11,13) 5 (5,18,22,9,11,13)
* (18,22,9,11,13) 9 (5,9,22,18,11,13)
* (22,18,11,13) 11 (5,9,11,18,22,13)
* (18,22,13) 13 (5,9,11,13,22,18)
* (22,18) 18 (5,9,11,13,18,22)
*/
int[] arr=new int[]{5,18,22,9,11,13};
int temp;
for (int i = 0; i < arr.length; i++) {
int k=i;
for (int j = i+1; j < arr.length; j++) {
if(arr[j]<arr[k]) {
k=j;
}
}
if(i!=k) {
temp=arr[i];
arr[i]=arr[k];
arr[k]=temp;
}
}
System.out.println(Arrays.toString(arr));
}
}
(三)插入排序
public class InsertionSort {
public static void main(String[] args) {
/**
* 插入排序:
* 将数组分为两部分,将后部分元素逐一与前部分元素比较,
* 如果前部分元素比array[i]小,就将前部分元素往后移动。
* 当没有比array[i]小的元素,即是合理位置,在此位置插入array[i]
* 5,18,22,9,11,13
* 5,9,18,22,11,13
* 5,9,11,18,22,13
* 5,9,11,13,18,22
*/
int[] arr=new int[]{5,18,22,9,11,13};
int temp;
int t=0;
for (int i = 1; i < arr.length; i++) {
if(arr[i]<arr[i-1]) {
t=arr[i];
int j;
for (j=i-1; j > -1 && t < arr[j]; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = t;
}
}
System.out.println(Arrays.toString(arr));
}
}