劃分演算法(快速排序的根基)

2021-06-08 11:40:13 字數 826 閱讀 7710

/**

* 劃分演算法

* @author demon

* */

public class partition ; //初始化測試陣列

/*** 劃分演算法(pivot預設選擇陣列最右端)

* @param partitionarr

* @param left

* @param right

*/private static int partition(int left, int right) else

} return leftptr;

} /**

* 交換

* @param partitionarr

* @param leftptr

* @param rightptr

*/private static void swap(int partitionarr, int leftptr, int rightptr)

/*** test main

* @param args

*/public static void main(string args)

}}

不過多解釋直接上code。

以上**如有問題歡迎指點後續還會更新快速排序。(在快速排序會有更詳細的說明)

最後說下劃分演算法的效率應為o(n)leftptr與rightptr分別從陣列兩端移動,如滿足條件移動停止進行交換,當leftptr與rightptr相與則劃分完成。執行的時間和n成正比。

整數劃分演算法

將正整數n表示成一系列正整數之和 n n1 n2 nk,其中n1 n2 nk 1,k 1。正整數n的這種表示稱為正整數n的劃分。輸入 乙個正整數n 輸出 n不同劃分個數以及n的劃分結果。例如正整數6有如下11種不同的劃分 6 5 1 4 2,4 1 1 3 3,3 2 1,3 1 1 1 2 2 2...

SparkCore stage劃分演算法原始碼分析

在之前的文章中,已經分析了stage的劃分演算法,這裡我們到原始碼裡面去看劃分演算法是怎麼實現的。首先找到提交job的入口 從action操作開始,找到action操作的runjob dagscheduler.runjob submitjob eventprocessloop.jobsubmitte...

社團劃分演算法原理整理

特點 分為兩個大小已知的社團 kernighan lin演算法,1970年提出,試探優化法,基於一種採用貪婪演算法原理講網路劃分為兩個大小已知的社團的二分法,七級本思想是在網路劃分時引入乙個增益函式q,通過交換節點對,使得q值最大。q 為兩個社團內部的邊數 兩個社團之間的邊數 特點 一次分成兩個,僅...