一、冒泡排序
相邻的两个元素比较,大的放右边,小的放左边。
二、选择排序
从0索引开始,把每一个索引依次跟后面的索引比较,大的放后面,小的放前面
三、插入排序
将数组分为有序和无须两种,遍历数组将无须的数组插入有序的数组当中
四、快速排列
见名知意,快速排列的时间的成本非常低。本质是利用了递归算法。
- 首先,将排序范围里面中的第一个数字当作基准数,在定义两个变量start,end。
- 一定要先从end开始,从后往前找比基准数小的数,然后start从前往后找到比基准数大的数字
- 找到后交换start和end指向元素的位置,并循环这一过程,直到start和end处于一个位置,该位置是基准数在数组中应该存入的位置,再让基准数归位。
- 归位后利用递归重述以上过程。比基准数大的在右边,比基准数小的在左边。
public static void Sort(int[] arr, int i, int j) { int start = i; int end = j; if (i > j) { return; } int number = arr[i]; while (start != end) { //找到比基准数小的,放在左边 while (true) { if (start >= end || arr[end] < number) { break; } end--; } //找到比基准数大的,放在右边 while (true) { if (start >= end || arr[start] > number) { break; } start++; } int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } //基准数归位 int temp = arr[i]; arr[i] = arr[end]; arr[end] = temp; //重复左边 Sort(arr, i, start - 1); //重复右边 Sort(arr, start + 1, j); }标签:arr,end,temp,int,基准,start,算法,Java,排序 From: https://blog.csdn.net/akiramenai/article/details/140828288