⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quicksort.java

📁 struts spring ibatis
💻 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 + -