javaScriptソート---クイックソート

837 ワード

function quickSort (array) {
 	let sort = (arr, left = 0, right = array.length - 1) => {
 		if(left >= right) { 	//  left >= right,    
 			return 
 		}
 		else {
 		 	let i = left,j = right
 		 	const base = arr[j]
 			while (i < j) {   //                     
 				while (i < j && arr[i] <= base) { //             
 					i++ 
 				}
 				arr[j] = arr[i]
 				while(j > i && arr[j] >= base) {  //                               (i    j)
 					j--
 				}
 				arr[i] = arr[j]
 			}
 			arr[j] = base  //                 (    j    i )
 			sort(arr,left,j-1)  //                
 			sort(arr,j+1,right)  //                
 		}
 	}
 	 const newArr = array.concat() //                   
     sort(newArr)
     return newArr
}
var arr = [3,42,54,2,1]
quickSort([3,42,54,2,1]);