`
qq125922714
  • 浏览: 36523 次
社区版块
存档分类
最新评论

以一个枢纽值二分一个数组

阅读更多

    划分算法由两个指针开始,分别指向数组的两头。在左边的指针向右移动,右边的指针向左移动。左边的指针leftPtr初始化为第一个数据项,右边的指针rightPtr初始化为数组的最后一项。算法如下:

?


import java.util.Random;

public class Partition {
    private long[] theArr;
    private int nElems;

    public Partition(int max) {
        theArr = new long[max];
        nElems = 0;
    }

    public void insert(long value) {
        theArr[nElems++] = value;
    }

    public int size() {
        return nElems;
    }

    public void display() {
        System.out.print("A = ");
        for (int j = 0; j < nElems; j++) {
            System.out.print(theArr[j] + " ");
        }
        System.out.println();
    }

    public int partitionIt(int left, int right, long pivot) {
        int leftPtr = left - 1;
        int rightPtr = right + 1;
        while (true) {
            // keep moving to right until current value is larger than pivot
            while (leftPtr < right &amp;&amp; theArr[++leftPtr] < pivot) {
                //
            }

            // keep moving to left until current value is smaller than pivot
            while (rightPtr > left &amp;&amp; theArr[--rightPtr] > pivot) {
                //
            }

            // if left pointer meet the right pointer, break
            if (leftPtr >= rightPtr) {
                break;
            } else {
                swap(leftPtr, rightPtr);
            }
        }

        // return pivot position
        return leftPtr;
    }

    public void swap(int dex1, int dex2) {
        long temp = theArr[dex1];
        theArr[dex1] = theArr[dex2];
        theArr[dex2] = temp;
    }
}

?

end.

 
0
0
分享到:
评论

相关推荐

    一个中心一个枢纽三个基地MicrosoftWord文档.pdf

    在IT领域,虽然"一个中心一个枢纽三个基地"的概念并非技术术语,但我们可以将这个理念应用于信息化城市建设,探讨如何利用Microsoft Word这样的文档处理工具和其他IT技术来支持这一战略定位。 首先,"一个中心"指的...

    综合运输枢纽选址模型综述.pptx

    Abdennour-Helm 和 Venkataramanan (1998) 提出了一个新的基于网络中多元商品运输的二次整数模型。Hamacher (2004) 开发了关于解除无容量限制的节点选址问题到多重分配无容量限制的枢纽节点选址问题之间面约束的一般...

    论文研究-基于枢纽魅力度的城市公交枢纽布局优化方法.pdf

    基于备选枢纽点集, 综合考虑乘客和运营者双方利益, 提出一个以枢纽辐射域最大、枢纽间相似度最小和土地成本最少的多目标枢纽布局优化模型, 并设计多目标遗传算法进行求解. 最后, 以大连市主城区的公交系统为例, 对...

    数学建模优秀论文——枢纽机场的选址问题论文

    3. **模型建立**:构建了一个更加全面和复杂的模型,用以评估枢纽机场的选择及其对区域经济竞争力的影响。 #### 结果表示与分析 文章最后对所建立的模型进行了详细的分析与检验,包括结果的准确性、模型的有效性...

    7. 快速排序里的学问:枢纽元选择与算法效率1

    选择第一个元素作为枢纽元的实现可以在前一篇专题《快速排序的学问:霍尔快排的实现》中找到,而选择最后一个元素作为枢纽元的例子可以在《快速排序的过程》中看到。当输入数据随机时,这种策略是可行的,但在预排序...

    综合能源系统计算程序_能源_能量枢纽_能源枢纽_综合能源程序_综合能源计算

    综合能源系统计算程序是能源行业中一个重要的研究领域,它涉及到多能源形式的高效利用、转换和协调优化。在这个系统中,能量枢纽或能源枢纽扮演着关键角色,它们是连接不同能源网络的节点,负责能量的汇集、转换和...

    论文研究-能力限制条件下内河集装箱枢纽港选址问题研究:以长江为例.pdf

    不同于传统的枢纽选址问题的研究大多是基于枢纽之间的运输折扣因子的假设,本文采用基于流量的非线性费用函数来表示规模经济,从而使得所研究的问题是一个凹函数优化问题.为简化本文的问题,将目标函数分段线性化.基于...

    枢纽振荡器 - 平均值 - MetaTrader 5脚本.zip

    总之,"枢纽振荡器 - 平均值"是MetaTrader 5的一个定制脚本,通过结合枢轴点分析和平均值处理,为交易者提供了一种工具来识别市场趋势和转折点,辅助决策。不过,要充分利用这种工具,需要对技术分析原理、MT5平台...

    波动率枢纽点 - MetaTrader 5脚本.zip

    这个脚本,"Volatility pivot.mq5",是一个用MQL5语言编写的MetaTrader 5指标,它根据平均真实范围(AtR)来计算波动率枢纽点。 平均真实范围是衡量市场波动性的指标,由J. Welles Wilder Jr.在1978年提出。AtR计算的...

    枢纽机场中转水平度量评价研究

    总而言之,枢纽机场中转水平的评价是一个多维度、复杂而系统的工作,涉及到航空运输网络的规划、航空运输经济学、机场运营管理等多个方面,需要多学科知识的综合应用和政策的支持。枢纽机场中转水平度量评价的研究,...

    253-基于枢纽与城市功能融合的综合交通枢纽规划设计研究——以佛山西站综合交通枢纽设计为例.pdf

    【枢纽与城市功能一体化】未来趋势是交通枢纽与城市功能更深层次的融合,如品川站和九龙站的实例所示,佛山西站设计也应借鉴这些经验,创建一个既满足交通需求又促进城市发展的综合性空间。 总结来说,佛山西站综合...

    行业分类-设备装置-以通航梯级枢纽为核心的水陆耦合集散交通系统构建方法.zip

    标题中的“行业分类-设备装置-以通航梯级枢纽为核心的水陆耦合集散交通系统构建方法”指的是一个关于交通工程领域的创新解决方案,特别是针对水上交通与陆地交通的协同设计。这种系统旨在提高交通运输效率,优化资源...

    Udp枢纽转发器v2.3

    应用场景一:多个应用程序需要监听设备发来的UDP数据,但设备只能将数据发送到一个目标地址,这时可利用UDP枢纽转发器监听此端口,然后将数据分别转发给多个目标。 应用场景二:设备利用UDP与厂家的演示程序通讯。现...

    行业分类-设备装置-枢纽装置及具有此枢纽装置的可折叠式人体工学键盘.zip

    首先,“行业分类”意味着我们将讨论的是一个特定行业的标准或产品分类,可能是为了便于市场定位、产品设计或技术交流。其次,“设备装置”是一个宽泛的术语,通常包括机械、电子或其他类型的设备组件。最后,“枢纽...

    某物流枢纽项目研究报告.pptx

    综上所述,XX物流枢纽项目旨在打造一个高效、灵活且适应性强的物流服务体系,以满足不同行业的需求,推动天津开发区乃至全国的经济发展。通过集成化服务和智能化管理,该项目将助力制造业的优化升级,催生新的经济...

    DL-T-5180-2003-水电枢纽工程等级划分及设计安全标准.pdf

    对于尚未按结构可靠度原理修编设计规范的,仍可采用定值设计方法,以安全系数为设计标准。一级永久性水工建筑物的设计基准期应采用100年,其他永久性建筑物则为50年。临时性建筑物的设计基准期则根据预定的使用年限...

    快速排序(整数)

    - 选择一个基准值(称为“枢纽”),通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小; - 然后分别对这两部分数据继续进行快速排序,整个排序过程可以递归进行...

Global site tag (gtag.js) - Google Analytics