快速排序Java原始碼(遞迴和非遞迴)

2021-06-01 10:52:05 字數 848 閱讀 1276

ackage com.side.quicksort;  

import com.side.tests.stack;//作者自己定義的棧類

public

class quicksort   

public

void test();

int a={};  

printarray(a);  

//quicksort(a,0,a.length-1);

//nonrecrutsort(a);

nonrecrutquicksort(a);  

printarray(a);  

//partition(a, 0, 5);

}  public

void quicksort(int a,int start,int end)  

}  public

void nonrecrutsort(int a)  

if(end>pivotpos+1)  

}  }  

public

void nonrecrutquicksort(int a)  

if(end>pivotpos+1)  

}     

}  public

int partition(int a,int start,int end)  

a[start]=pivot;  

return start;//返回劃分後的pivot的位置

//printarray(a);

}  public

void printarray(int a)  

system.out.println();  

}  } 

快速排序 遞迴和非遞迴的實現

快速排序主要就是partition的操作。遞迴的實現。a 要排序的陣列,s 開始位置,e 結束位置 void quicksort int arr,int s,int e 普通劃分操作。以最後乙個元素 arr e 作為基準 intpartition int arr,int s,int e swap a...

遞迴和非遞迴快速排序 Python實現

快速排序的原理是基於分治策略,設定乙個基準線 pivot 將資料分為兩部分,不斷分治實現資料的排序 由實現原理容易得到遞迴 如下 def qsort arr ifnot len arr return else 在這裡以第乙個元素為基準線 pivot arr 0 left qsort x for x ...

快速排序實現(遞迴 非遞迴)

首先是劃分演算法,假設每次都以第乙個元素作為樞軸值,進行一趟劃分 int partition int a,int low,int high a low pivot 將樞軸值元素置於最終位置 return low 第乙個while迴圈裡的 還可以採用如下形式 while low high a high...