选择排序
将要排序的数组分成两部分,一部分是从小到大已经排好序的,一部分是无序的,
从无序的部分取出最小的数值,放到已经排好序的部分的最后。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | class ChooseSort{
 
 public static void sort(int[] arr){
 int t;
 for(int i=0;i<arr.length;i++){
 int m = i;
 for(int j=i+1;j<arr.length;j++){
 
 if(arr[j]<arr[m]){
 m = j;
 }
 }
 
 if(i != m){
 t = arr[i];
 arr[i] = arr[m];
 arr[m] = t;
 }
 }
 System.out.println(Arrays.toString(arr));
 }
 
 }
 
 
 | 
冒泡排序
从数组中扫描待排序的元素,扫描过程中依次对相邻元素进行比较,将数值大的元素后移。
每经过一趟排序后,数值最大的元素将移到末尾,此时加下该元素的位置,下一趟排序
只需要比较到此位置为止,直到所有元素都已有序排列
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 
 | class BubblingSort{
 public static void sort(int[] arr){
 int t;
 for (int i=0 ;i<arr.length;i++){
 
 for (int j=0;j<arr.length-i-1;j++){
 
 if(arr[j]>arr[j+1]){
 t = arr[j];
 arr[j] = arr[j+1];
 arr[j+1]=t;
 }
 }
 }
 System.out.println(Arrays.toString(arr));
 }
 
 }
 
 
 | 
插入算法
将排序的数组分成两部分,每次从后面的数组部分中去除索引最小的数组元素,
插入到前面数组部分的适当位置中。通常在开始排序时,将数组的第一个元素
作为一组,后面的所有元素被当成一组。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | class InsertSort{
 public static void sort(int[] arr){
 
 
 for(int i = 1;i<arr.length;i++){
 int temp = arr[i];
 int j = i - 1;
 
 while (temp < arr[j]){
 arr[j+1] = arr[j];
 j--;
 if(j==-1){
 break;
 }
 }
 
 arr[j+1] = temp;
 }
 System.out.println(Arrays.toString(arr));
 }
 
 }
 
 
 | 
快速排序
被认为是最好的排序方式之一
基本思路为:将一个大的数组的排序问题,分解成两个小数组的排序
而每个小数组的排序又可以继续分解成更小的2个数组,这样一直递归分解下去,
直到数组的大小最大为2.
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 
 | class FastSort{
 public static int[] sort(int[] arr,int left,int right){
 int t;
 if(left<right){
 int s = arr[left];
 int i = left;
 int j = right+1;
 while (true){
 
 while (i+1<arr.length&&arr[++i]<s);
 
 while (j-i>-1 && arr[--j]>s);
 
 if(i>=j){
 break;
 }else {
 
 t = arr[i];
 arr[i] = arr[j];
 arr[j] = t;
 }
 }
 arr[left] = arr[j];
 arr[j] = s;
 
 sort(arr,left,j-1);
 
 sort(arr,j+1,right);
 }
 return arr;
 }
 }
 
 | 
测试
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 |  public class Sort {
 public static void main(String[] args) {
 int []arr = {10,7,8,5,2,4,7,3,1,6};
 
 
 
 InsertSort.sort(arr);
 }
 }
 
 |