有些小同学就是不听话非要点开~
啥也没写呢
①冒泡排序
思想:1、每一次遍历比较,将最大值筛选出来放到数组的最后一个位置array[length-1]
2、继续遍历数组0-array[length-2]
重复上述步骤,直到比较到数组下标0
public class BubbleSort {
static int[] arr = new int[] {
8,65,41,28,6,1,4,5,32,9,10};
public static void main(String[] args) {
// TODO Auto-generated method stub for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length -i -1; j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j]; arr[j] = arr[j+1];
arr[j+1] = temp; }
} System.out.println(Arrays.toString(arr)); } }}
②快速排序
思想:以基准分 小于基准 和 大于基准的两个部分 + 递归
1、以第一个数为基准,遍历将大于基准的数值放到数组后半部分位置,小于基准数组放到前半部分位置,最后将基准值放到中间的空位
2、被划分的两个子数组递归执行上述过程
public static void quicksort(int[] arr,int low,int high){
if(arr.length<=0) return;
if(low>=high) return;
int left=low;
int right=high;
int temp = arr[left];
while (left<right)
{
while (left<right && arr[right]>=temp)
{
right--;
}
arr[left]=arr[right];
while (left<right && arr[left]<=temp)
{
left++;
}
arr[right]=arr[left];
}
arr[right]=temp;
//被划分好的子数组分别进行递归
quicksort(arr,low,left-1);
quicksort(arr,left+1,high);
}