快速排序(java機試題)
題目要求:輸入一組數,以空格隔開。要求用快排按照從小到大的順序排列並輸出。
java實現如下:
import java.util.Scanner;
public class QuickSort
{
/**
* 快速排序
*/
public static void main(String[] args)
{
Scanner str = new Scanner(System.in);
String[] strlist = str.nextLine().split(" ");//這裡想獲得字串陣列,從而獲得輸入數值的個數
int[] list = new int[strlist.length];//因為java中陣列需要在使用前給定大小,大小從字串陣列獲得
for (int i = 0; i < strlist.length; i++)
{
list[i] = Integer.parseInt(strlist[i]);
}
for (int i = 0; i < list.length; i++)
{
System.out.print(list[i] + " ");
}
System.out.println();
//bubbleSort(list);//呼叫函式對陣列進行排序
//insertSort(list);
//selectSort(list);
//mergeSort(list);
quickSort(list, 0, list.length - 1);
for (int e : list)
{
System.out.print(e + " ");
}
}
//快速排序
public static void quickSort(int[] list, int first, int last)
{
if (first < last)
{
int pivotIndex = partition(list, first, last);
quickSort(list, 0, pivotIndex - 1);
quickSort(list, pivotIndex + 1, last);
}
}
public static int partition(int[] list, int first, int last)
{
int pivot = list[first], left = first, right = last;
while (left < right)
{
while (left < right && list[right] >= pivot)
{
right--;
}
list[left] = list[right];
while (left < right && list[left] <= pivot)
{
left++;
}
list[right] = list[left];
}
list[left] = pivot;//將pivot放到正確的位置
return left;//返回pivot元素的正確下標
}
}
相關文章
- 插入排序(java機試題)排序Java
- 選擇排序(java機試題)排序Java
- 歸併排序(java機試題)排序Java
- 氣泡排序(機試題)排序
- java 快速排序Java排序
- 快速排序-java排序Java
- [JAVA]快速排序Java排序
- 快速排序 java排序Java
- 隨機快速排序Java程式碼實現隨機排序Java
- 《排序演算法》——快速排序(Java)排序演算法Java
- 快速排序 java實現排序Java
- java實現快速排序Java排序
- 快速排序(java實現)排序Java
- 前端筆試題——手撕快速排序(保姆級手撕)前端筆試排序
- 筆試之排序-直接插入排序、氣泡排序、快速排序筆試排序
- 【JAVA演算法】排序演算法 -- 快速排序Java演算法排序
- 快速排序(oc/java/python/scala)排序JavaPython
- 排序演算法-Java實現快速排序演算法排序演算法Java
- 排序之快速排序排序
- Sort排序專題(5)快速排序(QuickSort)(C++實現)排序UIC++
- 排序:氣泡排序&快速排序排序
- java:快速排序演算法與氣泡排序演算法Java排序演算法
- 快速排序排序
- 資料排序_麥克機試排序
- Java不用遞迴的迭代快速排序示例Java遞迴排序
- 快速排序&&歸併排序排序
- 分治思想--快速排序解決TopK問題排序TopK
- 快速排序快速入門排序
- JAVA將快速將列表分組並排序鍵Java排序
- 四、歸併排序 && 快速排序排序
- 選擇排序和快速排序排序
- 排序演算法__快速排序排序演算法
- 排序演算法:快速排序排序演算法
- 排序演算法-快速排序排序演算法
- 排序演算法——快速排序排序演算法
- 排序演算法 - 快速排序排序演算法
- 快速排序法排序
- 快速排序javaScript排序JavaScript