快速排序

Posted chwlearningnotes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序相关的知识,希望对你有一定的参考价值。

public static void paixu(String[]arr,int left,int right,int index) {

if(left > right) {
return;
}
// 0 gridId 1 maxlng 2 maxlat 3 minlng 4 minlat 以;号分割
//按最大经度排序
double base = Double.parseDouble(arr[left].split(",")[index]);

int i = left;
int j = right;

while(i != j) {
//找到最大得数 最大的数就跑到前面了
while (Double.parseDouble(arr[j].split(",")[index])>= base && i < j) {
j--;
System.out.println(j);
}
//找到最小得数 最小的数就跑到后面了
while (Double.parseDouble(arr[i].split(",")[index]) <= base && i < j) {
i++;
System.out.println(i);
}
//如果最大和最小的数不相遇,那么交换这两个数的位置 交换后顺序就是从小到大
//交换后最大的数在尾端,最小的数在首端
if(i < j ) {
String temp = arr[i];
arr[i]= arr[j];
arr[j]= temp;
}
}
//如果最大和最小的相遇
String temp = arr[i];
//就把相遇位置的数和基准交换
arr[i]=arr[left];
arr[left] = temp;
//当排序排到i和j相遇时,就分成前后两部分

//
//再拿最左边的数到基准的前一位进行排序 对前一部分再次进行排序
paixu(arr, left, i-1,index);
//拿基准数后一位到最右边的数来排序 对后一部分进行排序
paixu(arr, j + 1, right,index);

}











































以上是关于快速排序的主要内容,如果未能解决你的问题,请参考以下文章

深度解析(十六)快速排序

快速排序

基于快速排序方法改成求第k大的数

简单介绍一下快速排序的思想?

用C语言编程实现快速排序算法

Python实现排序算法之快速排序