分治法,分而治之,基本思路:分,解,和。
初探分治之快速排序。
public class _DividedConquer { static int[] iarr; public static void main(String[] args) { // TODO Auto-generated method stub iarr=new int[]{6,4,5,3,1,2}; quick(0, iarr.length-1); for(int i:iarr) { System.out.print(i+" "); } } static void quick(int p,int r) { if(p<r) { int q=part(p,r); quick( p, q-1); quick( q+1, r); } } static int part(int p,int r) { int x=iarr[r]; int i=p-1; for(int j=p;j<r;j++) { if(iarr[j]<x) { i++; int tmp=iarr[i]; iarr[i]=iarr[j]; iarr[j]=tmp; } } int tmp=iarr[i+1]; iarr[i+1]=iarr[r]; iarr[r] =tmp; return i+1; } }
蓝桥杯——基础练习之分治法_快速排序,布布扣,bubuko.com
时间: 2024-10-14 06:14:22