java script快速排序
时间: 2023-11-29 13:46:54 浏览: 69
以下是JavaScript实现快速排序的代码示例:
```javascript
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
const pivotIndex = Math.floor(arr.length / 2);
const pivot = arr.splice(pivotIndex, 1)[0];
const left = [];
const right = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}
const arr = [5, 3, 7, 1, 9, 4, 8, 6, 2];
console.log(quickSort(arr)); // 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
```
相关问题
java分治算法实现快速排序
Java中的分治算法实现快速排序的步骤如下:
1. 选择一个基准元素(pivot),可以是数组中的任意一个元素。
2. 将数组分成两部分,小于等于基准元素的放在左边,大于基准元素的放在右边。
3. 对左右两部分分别进行递归调用快速排序算法,直到每个部分只有一个元素或为空。
4. 合并左右两部分,得到最终排序结果。
下面是Java代码实现快速排序的示例:
```java
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivotIndex = partition(arr, low, high); // 获取基准元素的位置
quickSort(arr, low, pivotIndex - 1); // 对左侧子数组进行快速排序
quickSort(arr, pivotIndex + 1, high); // 对右侧子数组进行快速排序
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[low]; // 选择第一个元素作为基准元素
int i = low + 1; // 左指针
int j = high; // 右指针
while (i <= j) {
if (arr[i] <= pivot) {
i++;
} else if (arr[j] > pivot) {
j--;
} else {
swap(arr, i, j); // 交换左右指针所指向的元素
}
}
swap(arr, low, j); // 将基准元素放到正确的位置上
return j; // 返回基准元素的位置
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args) {
int[] arr = {5, 2, 9, 1, 7, 6, 3};
quickSort(arr, 0, arr.length - 1);
for (int num : arr) {
System.out.print(num + " ");
}
}
}
```
java arraylist排序
要对Java ArrayList进行排序,可以使用Collections类的sort方法。可以按照元素的自然顺序进行排序,也可以使用Comparator来指定排序规则。下面是一个示例代码:
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(2);
list.add(8);
list.add(1);
Collections.sort(list);
System.out.println(list);
}
}
这个示例代码会将ArrayList中的元素按照升序进行排序。输出结果为[1, 2, 5, 8]。
阅读全文