歸併排序,快速排序

2021-09-18 02:37:39 字數 1524 閱讀 1304

快速排序實現:

/**

* filename:fastsort

* description:

* author:hcq

* createtime:2019-04-12 10:01

*/public class fastsort ;

arrays.stream(arr).foreach(v -> );

system.out.println("排序後--------");

sort(arr,0,arr.length-1);

arrays.stream(arr).foreach(v -> );

}/**

* 將arr陣列中[begin,end]之間的元素進行排序

* @param arr

* 需要排序的陣列

* @param begin

* 需要排序開始位置

* @param end

* 需要排序的結束位置

*/static void sort(int arr,int begin,int end)else if(arr[point]1)

if(maxcount>1)

}}

歸併排序的實現:

public class mergesort ;

mergesort(arr,0,arr.length-1);

for (int i : arr)

}/**

* 將陣列的[left,right]之間的元素進行排序

* @param arr

* 待排序陣列

* @param left

* 從left處開始排序

* @param right

* 到right處排序結束

*/static void mergesort(int arr,int left,int right)

}/**

* 將兩個有序的子陣列歸併為乙個整體有序的陣列

* @param arr

* 原陣列

* @param left

* 左邊子陣列開始位置

* @param center

* 左邊子陣列結束位置[右邊子陣列開始位置]

* @param right

* 右邊子陣列結束位置

*/static void merge(int arr,int left,int center,int right)else

tmp++;//移動新的複製位置

}//將剩餘資料複製到新陣列中。

while(leftpoint<=center)

while(rightpoint<=right)

//更新原陣列

for(int i=0;i}

}

快速排序 歸併排序

感覺好久之前不寫這些基礎的東西忽然覺著,想複習一下,就簡單溫習一下排序的例子 package com.ruishenh.algoritmic public class sort static void printmsg int arrs system.out.println static int g...

快速排序,歸併排序

快速排序 quicksort 是對 氣泡排序的一種改進。設要排序的 陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。需要注意的是,多個相同的值的相對位置也許會在演算法結束時產...

快速排序 歸併排序

1 快速排序 快速排序利用分治的思想,首先選取乙個哨兵,將陣列中大於哨兵的元素放到一邊,小於陣列的元素放到另一邊,然後對兩邊也進行相同的操作。public void quicksort list t private void quicksort list t,int l,int h 將大於哨兵的放到...