public static void quickSort(int left
,int right
,int nums
[]){
if(left
>=right
){
return;
}
int i
=left
,j
=right
-1;
int key
=del(left
,right
,nums
);
while(i
<j
){
while(i
<j
&&nums
[i
]<=nums
[key
]){
i
++;
}
while(i
<j
&&nums
[j
]>=nums
[key
]){
j
--;
}
if(i
<j
){
swap(i
,j
,nums
);
}
}
if(i
<right
-1){
swap(i
,right
-1,nums
);
}
quickSort(left
,i
-1,nums
);
quickSort(i
+1,right
,nums
);
}
public static void swap(int i
,int j
,int nums
[]){
int temp
= nums
[i
];
nums
[i
] = nums
[j
];
nums
[j
] = temp
;
}
public static int del(int left
,int right
,int nums
[]){
int mid
=(right
+left
)/2;
if(nums
[left
]>nums
[right
]){
swap(left
,right
,nums
);
}
if(nums
[left
]>nums
[mid
]){
swap(left
,mid
,nums
);
}
if(nums
[mid
]>nums
[right
]){
swap(mid
,right
,nums
);
}
swap(mid
,right
-1,nums
);
return right
-1;
}
转载请注明原文地址: https://lol.8miu.com/read-26138.html