zoukankan      html  css  js  c++  java
  • 快速排序

     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 }
  • 相关阅读:
    【Codechef】Chef and Bike(二维多项式插值)
    USACO 完结的一些感想
    USACO 6.5 Checker Challenge
    USACO 6.5 The Clocks
    USACO 6.5 Betsy's Tour (插头dp)
    USACO 6.5 Closed Fences
    USACO 6.4 Electric Fences
    USACO 6.5 All Latin Squares
    USACO 6.4 The Primes
    USACO 6.4 Wisconsin Squares
  • 原文地址:https://www.cnblogs.com/had1314/p/11373827.html
Copyright © 2011-2022 走看看