Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width">
- <title>JS Bin</title>
- </head>
- <body>
- <script id="jsbin-javascript">
- function getPivot(numbers,low,high){
- if(low===high){
- return numbers[low];
- }
- var step = 5, n=-1,i=low,l=high-step,medianIndex;
- while(i<=l){
- medianIndex = getMedian(numbers,i,i+step-1);
- exchange(numbers,++n,medianIndex);
- i+=5;
- }
- if(i<=high){
- medianIndex = getMedian(numbers,i,high);
- exchange(numbers,++n,medianIndex);
- }
- return getPivot(numbers,low,n);
- }
- function getMedian(numbers,low,high){
- var medianIndex = Math.trunc(0.5*(high-low))+low;
- for(var i =low;i<=medianIndex;i++){
- var flag =i;
- for(var j = i+1;j<=high;j++){
- if(numbers[j]<numbers[flag]){
- flag = j;
- }
- }
- exchange(numbers,i,flag);
- }
- return medianIndex;
- }
- function exchange(numbers,index1,index2){
- var temp = numbers[index1];
- numbers[index1]=numbers[index2];
- numbers[index2]=temp;
- }
- var numbers=[1,12];
- var pivot = getPivot(numbers,0,numbers.length-1);
- console.log(pivot);
- </script>
- <script id="jsbin-source-javascript" type="text/javascript">function getPivot(numbers,low,high){
- if(low===high){
- return numbers[low];
- }
- var step = 5, n=-1,i=low,l=high-step,medianIndex;
- while(i<=l){
- medianIndex = getMedian(numbers,i,i+step-1);
- exchange(numbers,++n,medianIndex);
- i+=5;
- }
- if(i<=high){
- medianIndex = getMedian(numbers,i,high);
- exchange(numbers,++n,medianIndex);
- }
- return getPivot(numbers,low,n);
- }
- function getMedian(numbers,low,high){
- var medianIndex = Math.trunc(0.5*(high-low))+low;
- for(var i =low;i<=medianIndex;i++){
- var flag =i;
- for(var j = i+1;j<=high;j++){
- if(numbers[j]<numbers[flag]){
- flag = j;
- }
- }
- exchange(numbers,i,flag);
- }
- return medianIndex;
- }
- function exchange(numbers,index1,index2){
- var temp = numbers[index1];
- numbers[index1]=numbers[index2];
- numbers[index2]=temp;
- }
- var numbers=[1,12];
- var pivot = getPivot(numbers,0,numbers.length-1);
- console.log(pivot);</script></body>
- </html>
Add Comment
Please, Sign In to add comment