Java中快速排序的算法是什么

  介绍

这篇文章主要介绍了Java中快速排序的算法是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

<强>快速排序的原理

快速排序是对冒泡排序的一种改进,冒泡排序是通过一个个比较,从而将小的值放在一端,而大的值放在另外一端,从而达到排序的目的。

而快速排序,是先选定一个临界值,将比这临界值小的值放在一端,而比临界值大的值放在另外一端。重复上一段方法,可以把已经通过临界值分成的两边,再进行两次的分放……将其数据排序好,则整个快速排序就完成了。

<强>快速排序的算法

<强>核心算法:

//快速排序   虽然(我& lt;j) {   而(num [j]比;tmp和,j比;我)   ——j;   而(num[我]& lt;=tmp和,我& lt;j) {   + +我;   }   如果我& lt;j) {   t=num[我];   num[我]=[j];   num [j]=t;   }   }   num(左)=num[我];   num[我]=tmp;

<强>下面是完整的快排程序:

//QuickSort.java   公共类快速排序{   公共静态void main (String [] args) {   int [] num={10、9、8、7、6、5、4、3、2、1};      System.out.print (“Qriginal数组是:“);   for (int i=0;我& lt;num.length;我+ +){   system . out。打印(num[我]+“;“);   }   System.out.println ();//快速排序   快速排序(num 0 9);      System.out.print(“排序数组是:“);   for (int i=0;我& lt;num.length;我+ +){   system . out。打印(num[我]+“;“);   }   System.out.println ();   }      公共静态真空快速排序(int [] num, int, int) {   如果(左比;右)   返回;   int tmp, i, j, t;   tmp=num(左);   我=左;   j=正确;   虽然(我& lt;j) {   而(num [j]比;tmp和,j比;我)   ——j;   而(num[我]& lt;=tmp和,我& lt;j) {   + +我;   }   如果我& lt;j) {   t=num[我];   num[我]=[j];   num [j]=t;   }   }   num(左)=num[我];   num[我]=tmp;   快速排序(num,离开时,我- 1);   快速排序(num, i + 1);   }   }

程序输出如下图所示:

Qriginal数组是:10 9 8 7 6 5 4 3 2 1   排序数组是:1 2 3 4 5 6 7 8 9 10

快速排序效率相对其他排序方法较高,因此快速排序是现在最好的通用排序方法.QuickSort的时间复杂度为O (nlogn)。

Java中快速排序的算法是什么