求java快速排序算法,最好是示例的那种,感激不尽

 我来答
qdmmy6
推荐于2016-02-01 · TA获得超过2674个赞
知道小有建树答主
回答量:1823
采纳率:0%
帮助的人:1040万
展开全部
public static void main(String[] args) {
int[] arr = {1,4,7,2,5,8,3,6,9};
quickSort(arr);
}

public static void quickSort(int[] a) {
quickSort(a, 0, a.length - 1);
}

private static void quickSort(int[] a, int start, int end) {
int left = start;
int right = end - 1;
int pivot = a[end];

while (left < right) {
if (a[left] <= pivot) {
left++;
continue;
}
if (a[right] > pivot) {
right--;
continue;
}
swap(a, left++, right);
}

if (a[left] < pivot) {
left++;
}
swap(a, left, end);

if(left - 1 > start) {
quickSort(a, start, left - 1);
}
if(left + 1 < end) {
quickSort(a, left + 1, end);
}
}
金爵糜柏
2019-07-11 · TA获得超过3450个赞
知道大有可为答主
回答量:3015
采纳率:33%
帮助的人:181万
展开全部
public
static
void
main(String[]
args)
{
int[]
arr
=
{1,4,7,2,5,8,3,6,9};
quickSort(arr);
}
public
static
void
quickSort(int[]
a)
{
quickSort(a,
0,
a.length
-
1);
}
private
static
void
quickSort(int[]
a,
int
start,
int
end)
{
int
left
=
start;
int
right
=
end
-
1;
int
pivot
=
a[end];
while
(left
<
right)
{
if
(a[left]
<=
pivot)
{
left++;
continue;
}
if
(a[right]
>
pivot)
{
right--;
continue;
}
swap(a,
left++,
right);
}
if
(a[left]
<
pivot)
{
left++;
}
swap(a,
left,
end);
if(left
-
1
>
start)
{
quickSort(a,
start,
left
-
1);
}
if(left
+
1
<
end)
{
quickSort(a,
left
+
1,
end);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式