/* 排序算法 */ #include <stdio.h> //冒泡排序 void Bubble_sort(int *p_val, int size) { int j = 0; int i = 0; for (i = 0;i < size - 1;i++) { for (j = i;j < size ...
分类:
编程语言 时间:
2020-03-29 21:20:29
阅读次数:
90
快速排序算法思想: 快速排序是冒泡排序的改进算法。它也是通过不断比较和移动交换来实现排序的,只不过它的实现增大了记录的比较和移动的距离,将关键字较大的元素从前面直接放到后面,关键字较小的元素直接从后面放到前面,从而减小了比较次数和交换次数。 对于近乎有序的数组,可采用起始值为数组中随机数字,否则会退 ...
分类:
编程语言 时间:
2020-03-29 17:48:14
阅读次数:
78
```$c = [12,13,11,10,4,1,5,56,87,45,332,123,4414,1312];function sortBy($c){ if (count($c) $d){ $great[] = $value; } } return array_merge(sortBy($less)... ...
分类:
编程语言 时间:
2020-03-29 10:52:37
阅读次数:
64
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明: 你可以假设 ...
分类:
编程语言 时间:
2020-03-28 01:17:46
阅读次数:
106
背景 快速排序,是在上世纪60年代,由美国人东尼·霍尔提出的一种排序方法。这种排序方式,在当时已经是非常快的一种排序了。因此在命名上,才将之称为“快速排序”。这个算法是二十世纪的七大算法之一,平均情况下时间复杂度为Ο(nlogn),而且在O(nlogn)的情况下,实际的运算速度都要快于其他同时间复杂 ...
分类:
编程语言 时间:
2020-03-27 19:52:25
阅读次数:
51
排序 快速排序算法 分支/双指针算法 在待排序的n个记录中任取一个记录(通常去第一个记录)作为基准 1) 首先把该记录放入适当位置,数据序列被此记录划分为两部分,分别是比基准小和比基准大的记录。 2) 其次对基准两边的序列用同样的策略进行操作 平均时间复杂度O(logn) ? a. 确定分界点 q[ ...
分类:
编程语言 时间:
2020-03-26 21:34:03
阅读次数:
70
2020.3.25学习记录 1.什么是P问题、NP问题和NPC问题? 时间复杂度 时间复杂度描述了当输入规模变大时,程序运行时间的变化程度,通常使用O来表示。比如单层循环的时间复杂度为O(n),也就是说程序运行的时间随着输入规模的增大线性增长,两层循环的时间复杂度为O(n2),快速排序的时间复杂度为 ...
分类:
其他好文 时间:
2020-03-25 21:38:39
阅读次数:
122
// 快速排序算法:关键在于定义基准元素,头尾元素与基准元素对比,定义头尾元素下标,头小右移,头大停止,尾大左移,尾小停止,头大尾小元素交换 function partition(arr, startIndex, endIndex) { var pivot = arr[startIndex]; va ...
分类:
编程语言 时间:
2020-03-23 09:17:05
阅读次数:
67
一:排序概述 排序时是MapReduce框架最重要的操作之一 MapTask和ReduceTask均会对数据按照key进行排序,该操作是属于Hadoop的默认行为。任何应用程序中的数据均会被排序,不管你是否需要。 默认排序是按照字典顺序排序,实现该排序的方法是快速排序 二:排序分类 (1)全排序 只 ...
分类:
编程语言 时间:
2020-03-22 19:36:50
阅读次数:
86