يلخص هذه المقالة خوارزميات الفرز المختلفة في جافا. شاركه للرجوع إليه ، على النحو التالي:
1. نوع الفقاعة:
الفئة العامة sortest {public static void main (string [] args) {int [] a = {345،7،32،5،4 ، -1،3،12،23،110،45645،321،456،78 ، -1،78 ، 78،32،4445} ؛ {for (int j = 0 ؛ j <a.length-i-1 ؛ j ++) {if (a [j]> a [j+1]) {int tmp = a [j] ؛ [J+1] ؛
2. فرز سريع (لا توجد قيم مكررة):
الفئة العامة sorttest {public static void main (] .LENGTH-1) ؛ = start ؛ ) {i ++} int n ، int {int tmp = a [n] ؛ .println (Arrays.ToString (A)) ؛
3. النوع السريع (يمكن أن تشمل القيم المتكررة)
الفئة العامة sortest {public static void main (string [] args) {int [] a = {345،7،32،5،4 ، -1،3،12،23،110،45645،321،456،78 ، -1،78 ، 78،32،345} ؛ > = نهاية) = الفهرس A [i]) {i ++ ؛ I ، index) ؛ A [n] ؛ ؛
4. فرز كومة
الفئة العامة sortest {public static void main (string [] args) {int [] a = {345،7،32،5،4 ، -1،3،12،23،110،45645،321،456،78 ، -1،78 ، 78،32،4445} ؛ /2-1 ؛ i> = 0 ؛ i-) {createBigheap (a ، i ، size-1) ؛ [0] ؛ [] A ، int ، int end) {int tmp = a [start] ؛ +1] {j ++ ؛ ] = TMP ؛
5. أدخل الفرز
الفئة العامة {public static void main (] args) {int [] A = {345،7،32،5،4 ، -1،3} ؛ ) ؛ j = i ؛ j> = 0 ؛ j-) {if (tmp <a [j]) {a [n] = a [j] ؛ A [N] = TMP ؛
6. أضعاف نصف إدراج نوع
الفئة العامة sorttest {public static void main (string [] args) {int [] a = {345،7،345،2،2،7،2،7،23،2،345،7،32،5،4 ،--- 1،3،2،3،3،4،2،1،2،5،5،3،345،3،2 ؛ static void esertsort2 (int [] a) {for (int i = 0 ؛ i <A.Length-1 ؛ ] متابعة ؛ ]) {High = Mid -1 ؛ -) {A [J] = A [J-1] ؛ ؛
7. تل نوع
الفئة العامة sortest {public static void main (string [] args) {int [] a = {345،7،32،5،4 ، -1،3،2،3،5،7،8،90،1} ؛ ) {int i ، j ، k ، temp ، gap ؛ 58548857 ، 157840433،410151271،11313761،2147483647} ؛ i <n ؛ - GAP ؛
8. حدد الفرز
الفئة العامة {public static void main (] args) {int [] a = {345،7،32،5،4 ، -1} ؛ } private static void selectSort (int [] a) {for (int i = 0 ؛ i <A.Length-1 ؛ i ++) {int min = i ؛ j ++) {if (a [j] <a [min]) min = j ؛ = TMP ؛
9. الطلب
الفئة العامة sortest {public static void main (string [] args) {int [] a = {345،7،32،5،4 ، -1،3،2،3،5،7،8،90،1،432 ، 1} ؛ تخزين المساحة يكون الفهرس الأوسط مع القيمة اليسرى [] اليسار = setValue (A ، 0 ، Mid) ؛ ؛ قيمة العنصر هي 1 mergesort (يمين) ؛ {int i = 0 ، j = 0 ، k = 0 ؛ [i ++] ؛ ؛ j ++) {a [k ++] = right [j] ؛ int i = 0 ؛ أ)) ؛
ملخص:
الطبقة العامة {public final static int desc = -1 ؛ (int [] a ، int sort) {if (sort == asc) bubblesortasc (a) ؛ .length-1 ؛ i ++) {for (int j = 0 ؛ j <a.length-i-1 ؛ j ++) {if (a [j]> a [j+1]) {int tmp = a [j] ؛ 1 ؛ i ++) {for (int j = 0 ؛ j <a.length-i-1 ؛ j ++) {if (a [j] <a [j+1]) {int tmp = a [j] ؛ J] = A [J+1] ؛ ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- قدرة -سطر ----------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- param sort sortutil.asc ، sortutil.desc */ public static void QuickNorePeatSort (int [] int ، int) {if (sort == asc) quicknorepeatsorc (a ، 0 ، a.length-1) ؛ 0 ، A.Length-1) ؛ ابدأ ؛ {i ++ int ، int end) {if (end> end) {j - ، الفهرس - 1) ؛ C Quicksort Quicksort (int [] int) {if (sort == asc) QuickSortasc (A ، 0 ، A.Length-1) ؛ QuickSortasc QuickSortass (int ، int ، int) [j]> a [index]) {j-- ؛ index = swap (a ، j ، exply) ؛ (A ، ++ i ، exply) ؛ static voi d QuickSortdesc (int [] int ، int) A [j] <a [index]) {j-- ؛ {index = swap (a ، j ،} SWAP (A ، ++ I ، INDECH) ؛ STATIC I NT SWAP (int [] int n ، int) {int tmp = a [n] ؛ ---- --------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ----------- param a sort array * param sort sortutil.asc ، sortutil.desc */ public static void hepsort (int [] (أ) ؛ I--) {createBigheAp (a ، i ، size - 1) ؛ [الحجم - j] ؛ {int tmp = a [start] ؛ A [j]> tmp) {A [start] = a [j] int [] a) {// إنشاء الحد الأدنى من الحجم int = A.Length ؛ } // sort (int j = 0 ؛ j <size - 1 ؛ j ++) {int tmp = a [0] ؛ = TMP ؛ 1 ؛ ] ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------- -------------------------- /** * أدخل الفرز * * param مجموعة فرز * param sort sortutil. ASC ، sortutil.desc */ public static void esertsort (int [] int ، int) {if ( [] a) {for (int i = 0 ؛ i <a.length - 1 ؛ i ++) {int n = i+1 ؛ j--) {if (tmp <a [j]) {a [n] = a [j] ؛ public static void esertsortdesc (int [] a) {for (int i = 0 ؛ i <A.Length - 1 ؛ ؛ ] = TMP ؛ ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------ * نصف إدراج نوع * * param مجموعة فرز * param sort sortutil.asc ، sortutil.desc */ public static void halfinsertsort (int [] a ، int sort) {if (sort == asc) - 1 ؛ / 2 ؛ = mid + 1 ؛ TMP ؛ TMP <A) متابعة ؛ tmp> a [mid]) {high = mid - 1 ؛ J> Mid ؛ ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------ ----------------- /** * Hill Sort sortutil.asc ، sortutil.desc */ public static void shellsort (int [] int ، int) {if (sort == asc) {shellsortasc (a ، a.length) ؛ ) ؛ ، 4711 ، 11969 ، 27901 ، 84801 ، 213331 ، 543749 ، 1355339 ، 3501671 ، 8810089 ، 21521774 ، 58548857 ، 157840433 ، 410151271 ، 11313761 ، ن ؛ -K> = 0) {ga p = k] ؛ - GAP]> temp) {a [j] = a [j - gap] ؛ int i ، j ، k ، temp ، gap ؛ ، 21521774 ، 5854857 ، 157840433 ، 410151271 ، 1131376761 ، 2147483647} ؛ = GAP ؛ J = J-Gap ؛ ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- --------------------- --- / ** * حدد الفرز * * param مجموعة فرز * param sort sortutil.asc ، sortutil.desc * / public static void selectSort (int [] a ، int) {if (sort == asc) {selectSortasc (a) ؛ = 0 ؛ ::::::::::::::::::::::::: :::::::::::::::::::::: ::::::::::::::::::::: = i+1 ؛ ] = a [min] ؛ ؛ ] ؛ ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ----------------------------------------- -LISTINGERIATION-LINE- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ------------------------------------------------- ----------------------------------------- sortutil.desc */ public static void Mergesort (int [] a ، int sort) {// ابحث عن القيمة المتوسطة int mid = a.length / 2 ؛ ، Mid) ؛ int [] right = setValue (A ، Mid ، A.Length) ؛ = = ASC) {mergeasc (A ، يسار ، يمين) ؛ أنا : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ::::::::::::::::::::::::: :::::::::::::::::::::: :::::::::::::::::::: light.length ؛) {if (left [i] <j]) {a [k ++] = left [i ++] ؛ .Lender ؛ ، int [] اليسار ، int [] يمين) {int i = 0 ، j = 0 ، k = 0 ؛ [j]) {a [k ++] = left [i ++] ؛ ] ؛ = int [length - start] ؛
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.