C快速排序算法代码实现

public static void main(String[] args) {

int [] a= {1,3,5,7,9,2,4,6};

Sorts(a,a.length-1);

for(int i=0;i

System.out.print(a[i]+" ");

}

}

public static void Sorts(int [] a,int start,int end) {

int i,j,temp;

if(start>end) { //起点终点相遇

return;

}

i=start; //起点(哨兵)

j=end; //终点

temp=a[start];

while(i

while(temp<=a[j]&&i

j--; //获取到第一个小于哨兵的值

}

while(temp>=a[i]&&i

i++; //获取到第一个大于哨兵的值

}

if(i

int k=a[i];

a[i]=a[j];

a[j]=k;

}

a[start]=a[i]; //交换哨兵和中间值得位置

a[i]=temp;

}

Sorts(a,start,j-1); //递归重复执行

Sorts(a,j+1,end); //递归重复执行

}

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...