最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

看雪惡意程序分析與高級(jí)對(duì)抗技術(shù)

2022-10-05 22:46 作者:娜娜絡(luò)絡(luò)  | 我要投稿

快速排序

  • 每次將等待排序的數(shù)據(jù)劃分成兩部分

  • 遞歸進(jìn)行

  • 直到所有數(shù)據(jù)有序

import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;public class QuickSort { ? ?public static void main(String[] args) { ? ? ? ?int[] array = {5, 1, 6, 2, 4, 2, 3}; ? ? ? ?List<Integer> list = quickSort(Arrays.asList(5, 1, 6, 2, 4, 2, 3)); ? ? ? ?quickSortForInPlace(array); ? ? ? ?System.out.println(list); ? ?} ? ?// 分治法(Divide and conquer)需要O(n)的額外空間 ? ?public static List<Integer> quickSort(List<Integer> list) { ? ? ? ?if (list.size() <= 1) { ? ? ? ? ? ?return list; ? ? ? ?} ? ? ? ?List<Integer> left = new ArrayList<>(), pivot = new ArrayList<>(), right = new ArrayList<>(); ? ? ? ?Integer pivotValue = list.get(0); ? ? ? ?for (Integer element : list) { ? ? ? ? ? ?if (element < pivotValue) { ? ? ? ? ? ? ? ?left.add(element); ? ? ? ? ? ?} else if (element.equals(pivotValue)) { ? ? ? ? ? ? ? ?pivot.add(element); ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ?right.add(element); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return Stream.of(quickSort(left), pivot, quickSort(right)).flatMap(Collection::stream).collect(Collectors.toList()); ? ?} ? ?// 原地(in-place)分割版本 ? ?public static void quickSortForInPlace(int[] array) { ? ? ? ?quickSortPartition(array, 0, array.length - 1); ? ?} ? ?// 對(duì)數(shù)組中的某個(gè)區(qū)域進(jìn)行排序 ? ?public static void quickSortPartition(int[] array, int left, int right) { ? ? ? ?if (right > left) { ? ? ? ? ? ?// 將 [left - right] 區(qū)域分成了 ? ? ? ? ? ?// [left, pivotIndex - 1] 和 [pivotIndex + 1, right] 兩個(gè) ? ? ? ? ? ?int pivotIndex = partition(array, left, right); ? ? ? ? ? ?quickSortPartition(array, left, pivotIndex - 1); ? ? ? ? ? ?quickSortPartition(array, pivotIndex + 1, right); ? ? ? ?} ? ?} ? ?public static int partition(int[] array, int left, int right) { ? ? ? ?// 挑選最右側(cè)的作為基準(zhǔn)值 ? ? ? ?int pivotValue = array[right]; ? ? ? ?int storeIndex = left; ? ? ? ?for (int i = left; i < right; i++) { ? ? ? ? ? ?if (array[i] <= pivotValue) { ? ? ? ? ? ? ? ?swap(array, i, storeIndex); ? ? ? ? ? ? ? ?storeIndex += 1; ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?swap(array, storeIndex, right); ? ? ? ?return storeIndex; ? ?} ? ?private static void swap(int[] x, int a, int b) { ? ? ? ?int t = x[a]; ? ? ? ?x[a] = x[b]; ? ? ? ?x[b] = t; ? ?}}


看雪惡意程序分析與高級(jí)對(duì)抗技術(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
天峻县| 沿河| 延津县| 巴彦淖尔市| 南宫市| 罗山县| 宜兰市| 柘荣县| 宜城市| 盘锦市| 漳平市| 榆树市| 余庆县| 遵化市| 商丘市| 阿鲁科尔沁旗| 瑞安市| 深圳市| 茌平县| 科技| 鹿邑县| 沁源县| 曲水县| 喀喇| 临猗县| 曲周县| 寿阳县| 灵川县| 新闻| 黄浦区| 桂阳县| 济宁市| 大余县| 武城县| 安义县| 临夏市| 潢川县| 平凉市| 邵阳县| 宁化县| 涿州市|