📄 quicksort.java
字号:
package com.struts2.framework.util;
// Referenced classes of package org.fat32.util:
// Comparable
public class QuickSort
{
public static void quickSort(Object s[], int lo, int hi, Comparable cmp)
{
if(lo >= hi)
return;
int mid = (lo + hi) / 2;
if(cmp.compare(s[lo], s[mid]) > 0)
{
Object tmp = s[lo];
s[lo] = s[mid];
s[mid] = tmp;
}
if(cmp.compare(s[mid], s[hi]) > 0)
{
Object tmp = s[mid];
s[mid] = s[hi];
s[hi] = tmp;
if(cmp.compare(s[lo], s[mid]) > 0)
{
Object tmp2 = s[lo];
s[lo] = s[mid];
s[mid] = tmp2;
}
}
int left = lo + 1;
int right = hi - 1;
if(left >= right)
return;
Object partition = s[mid];
do
{
while(right > 0 && cmp.compare(s[right], partition) > 0)
right--;
for(; left < right && cmp.compare(s[left], partition) <= 0; left++);
if(left < right)
{
Object tmp = s[left];
s[left] = s[right];
s[right] = tmp;
right--;
} else
{
quickSort(s, lo, left, cmp);
quickSort(s, left + 1, hi, cmp);
return;
}
} while(true);
}
public void sort(Object data[], Comparable cmp)
{
quickSort(data, 0, data.length - 1, cmp);
}
public QuickSort()
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -