真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

快速排序JAVA代碼分析,快速排序java代碼分析方法

求使用java實現(xiàn)的快排算法

① 代碼:

目前創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、宣恩網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

public?class?quicksortdemo?{

private?int?array[];

private?int?length;

public?void?sort(int[]?inputArr)?{

if?(inputArr?==?null?||?inputArr.length?==?0)?{

return;

}

this.array?=?inputArr;

length?=?inputArr.length;

quickSort(0,?length?-?1);

}

private?void?quickSort(int?lowerIndex,?int?higherIndex)?{

int?i?=?lowerIndex;

int?j?=?higherIndex;

//?calculate?pivot?number

int?pivot?=?array[lowerIndex+(higherIndex-lowerIndex)/2];

//?Divide?into?two?arrays

while?(i?=?j)?{

while?(array[i]??pivot)?{

i++;

}

while?(array[j]??pivot)?{

j--;

}

if?(i?=?j)?{

swap(i,?j);????????????????

i++;

j--;

}

}

//?call?quickSort()?method?recursively

if?(lowerIndex??j)

quickSort(lowerIndex,?j);

if?(i??higherIndex)

quickSort(i,?higherIndex);

}

private?void?swap(int?i,?int?j)?{

int?temp?=?array[i];

array[i]?=?array[j];

array[j]?=?temp;

}

public?static?void?main(String?a[]){

quicksortdemo?sorter?=?new?quicksortdemo();

int[]?input?=?{24,2,45,20,56,75,2,56,99,53,12};

sorter.sort(input);

for(int?i:input){

System.out.print(i);

System.out.print("?");

}

}

}

② 運行:

c:\java?quicksortdemo

2?2?12?20?24?45?53?56?56?75?99

java快速排序代碼中SwapReferences()方法是什么?代碼怎么寫?

/**

?*?快速排序

?*/

private?static?void?quickSort?(?int[]?array,?int?start,?int?end?)

{

if?(start??end)

{

int?key?=?array;

int?i?=?start;

for?(?int?j?=?start?+?1;?j??end?+?1;?j++?)

{

if?(key??array[j])

{

int?temp?=?array[j];

array[j]?=?array[i?+?1];

array[i?+?1]?=?temp;

i++;

}

}

array?=?array[i];

array[i]?=?key;

quickSort?(array,?start,?i?-?1);

quickSort?(array,?i?+?1,?end);

}

}

int[]?array?=?new?int[]?{?11,?213,?134,?65,?77,?78,?23,?43?};

quickSort?(array,?0,?array.length?-?1);

System.out.println?(Arrays.toString?(array));

請問一下java快速排序源代碼

快速排序:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**

* @author treeroot

* @since 2006-2-2

* @version 1.0

*/

public class QuickSort implements SortUtil.Sort{

/* (non-Javadoc)

* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])

*/

public void sort(int[] data) {

quickSort(data,0,data.length-1);

}

private void quickSort(int[] data,int i,int j){

int pivotIndex=(i+j)/2;

//swap

SortUtil.swap(data,pivotIndex,j);

int k=partition(data,i-1,j,data[j]);

SortUtil.swap(data,k,j);

if((k-i)1) quickSort(data,i,k-1);

if((j-k)1) quickSort(data,k+1,j);

}

/**

* @param data

* @param i

* @param j

* @return

*/

private int partition(int[] data, int l, int r,int pivot) {

do{

while(data[++l]pivot);

while((r!=0)data[--r]pivot);

SortUtil.swap(data,l,r);

}

while(lr);

SortUtil.swap(data,l,r);

return l;

}

}

改進后的快速排序:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**

* @author treeroot

* @since 2006-2-2

* @version 1.0

*/

public class ImprovedQuickSort implements SortUtil.Sort {

private static int MAX_STACK_SIZE=4096;

private static int THRESHOLD=10;

/* (non-Javadoc)

* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])

*/

public void sort(int[] data) {

int[] stack=new int[MAX_STACK_SIZE];

int top=-1;

int pivot;

int pivotIndex,l,r;

stack[++top]=0;

stack[++top]=data.length-1;

while(top0){

int j=stack[top--];

int i=stack[top--];

pivotIndex=(i+j)/2;

pivot=data[pivotIndex];

SortUtil.swap(data,pivotIndex,j);

//partition

l=i-1;

r=j;

do{

while(data[++l]pivot);

while((r!=0)(data[--r]pivot));

SortUtil.swap(data,l,r);

}

while(lr);

SortUtil.swap(data,l,r);

SortUtil.swap(data,l,j);

if((l-i)THRESHOLD){

stack[++top]=i;

stack[++top]=l-1;

}

if((j-l)THRESHOLD){

stack[++top]=l+1;

stack[++top]=j;

}

}

//new InsertSort().sort(data);

insertSort(data);

}

/**

* @param data

*/

private void insertSort(int[] data) {

int temp;

for(int i=1;idata.length;i++){

for(int j=i;(j0)(data[j]data[j-1]);j--){

SortUtil.swap(data,j,j-1);

}

}

}

}

舉一個簡單java快速排序的例子?

Java中的快速排序一個簡單的例子

public class QuickSort {

public static void sort(Comparable[] data, int low, int high) {

// 樞紐元,一般以第一個元素為基準進行劃分

Comparable pivotKey = data[low];

// 進行掃描的指針i,j;i從左邊開始,j從右邊開始

int i = low;

int j = high;

if (low high) {

// 從數(shù)組兩端交替地向中間掃描

while (i j) {

while (i j data[j].compareTo(pivotKey) 0) {

j--; }

// end while

if (i j) {

// 比樞紐元素小的移動到左邊

data[i] = data[j];

i++;

}

// end if

while (i j data[i].compareTo(pivotKey) 0) {

i++;

}

// end while

if (i j) {

// 比樞紐元素大的移動到右邊

data[j] = data[i];

j--;

}

// end if

}

// end while

// 樞紐元素移動到正確位置

data[i] = pivotKey;

// 前半個子表遞歸排序

sort(data, low, i - 1);

// 后半個子表遞歸排序

sort(data, i + 1, high);

}

// end if

}

// end sort

public static void main(String[] args) {

// 在JDK1.5版本以上,基本數(shù)據(jù)類型可以自動裝箱

// int,double等基本類型的包裝類已實現(xiàn)了Comparable接口

Comparable[] c = { 4, 9, 23, 1, 45, 27, 5, 2 };

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

for (Comparable data : c) {

System.out.println(data);

}

}

}

真的是很服你,你把這個新建一個類放里面

在主方法里面這樣寫:

自己建個數(shù)組Comparable[] data,

定義參數(shù)int low, int high

QuickSort qs = new QuickSort();

qs.sort([] data, low, high);


新聞名稱:快速排序JAVA代碼分析,快速排序java代碼分析方法
當前地址:http://weahome.cn/article/dseoeej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部