• 快速排序


     1 递归:调用自己的方法
     2 递归三原则:1.封装一个独立的方法
     3 2.递归一定要有出口(结束条件)
     4 3.符合一定的规律
     5 
     6 斐波拉契  1 1 2 3 5 8 13 21 ..........
     7 //        int n1=1,n2=1;
     8 //        int sum=0;
     9 //        for(int i=2;i<8;i++) {
    10 //            sum=n1+n2;
    11 //            n1=n2;
    12 //            n2=sum;
    13 //        }
    14 //        System.out.println(sum);
    15 //    System.out.println(new Fbl().fb(8));
    16 递归做法:
    17 //    public int fb(int a) {
    18 //        if(a==1||a==2) {
    19 //            return 1;
    20 //        }else {
    21 //            return fb(a-1)+fb(a-2);
    22 //        }
    23 //    }
    24 快速排序
    25 
    26 
    27 陆军成 2019/7/31 19:21:46
    28 
    29 public class QuickSort {
    30 public static void quickSort(int[] arr, int left, int right) {
    31 int pivot = 0; //基准点
    32 if (left < right) {
    33 pivot = partition(arr, left, right);//得到基准点
    34 quickSort(arr, left, pivot - 1);//左子序列排序
    35 quickSort(arr, pivot + 1, right);//右子序列排序
    36 }
    37 
    38 }
    39 
    40 private static int partition(int[] arr, int left, int right) {
    41 int key = arr[left];//选取第一个元素为基准元素 left指向数列的最左部,right指向数据的最右部
    42 while(left < right) {
    43 while(left < right && arr[right] >= key) {//如果arr[right]>=key,将right--,直到arr[right]遇到比key小的值为止
    44 right--;
    45 }
    46 arr[left] = arr[right];//将arr[right]这个比key小的数放到左边去
    47 while(left < right && arr[left] <= key) {//拿arr[left]与key进行比较,如果arr[left]<key则将left++
    48 left++;  //然后再进行arr[left]与key的比较,直到遇到arr[left]>=key的值为止
    49 }
    50 arr[right] = arr[left];//将arr[left]这个比key大的数放到右边
    51 }
    52 arr[left] = key;//当left与right相等时退出while循环,key的值赋给当前left与right相等的位置,
    53 //得到一个以key基准的数列,左子数列的元素都比key的值小,右子数列都比key的值大
    54 return left;//返回新基准点的下标
    55 }
    56 }
  • 相关阅读:
    1. 两数之和
    RabbitMQ主题交换机
    RabbitMQ路由
    RabbitMQ发布订阅
    RabbitMQ简介和安装
    55. 跳跃游戏
    63. 不同路径 II
    62. 不同路径
    6. Z 字形变换
    sql注入攻击与防御第一章(笔记)
  • 原文地址:https://www.cnblogs.com/had1314/p/11373827.html
Copyright © 2020-2023  润新知