交换排序 基本思想: 是两两比较待排序对象的排序码,如发生逆序(即排列顺序与排序后的次序正好相反),则交换之,直到所有对象都排好序为止。 主要算法: 冒泡排序:BubbleSort 快速排序:QuickSort 冒泡排序 基本思想 设待排序元素序列中的元素个数为 n。最多作 n 1 趟,i = 1, ...
分类:
编程语言 时间:
2020-04-04 20:33:11
阅读次数:
72
竟然让手写sql唉 查找订单数>1000的用户,倒序输出 数组和链表的区别 arraylist和linkedlist的区别 http get post session 堆是什么? 堆排序过程 堆排序、快速排序是稳定的吗? 线程通信都有哪些? mysql 索引 数据库的事务特性,一致性是什么?(回答错 ...
分类:
其他好文 时间:
2020-04-04 14:44:10
阅读次数:
357
第一讲:基础算法 785. 快速排序 链接:https://www.acwing.com/problem/content/787/ ...
快速排序核心就是分治法,通过划分将待排序的序列分成前后两部分,其中前一部分的数据都比后一部分的数据要小,然后再递归调用函数对两部分的序列分别进行快速排序,以此使整个序列达到有序,其时间复杂度为O(nlogn)。该算法步骤如下: 1、从序列中任选一个数作为基准数,一般就使用第一个数; 2、分区,将大于 ...
分类:
编程语言 时间:
2020-04-02 01:31:34
阅读次数:
100
快速排序 优点: 好写 局部性好 空间复杂度平均为O(logn) 缺点: 不稳定 朴素地选择第一个元素或者最后一个元素容易退化 选择中间的元素不容易退化,但是对特定的序列仍然有可能退化 优势在于局部性原理,相邻几次调整的区间都几乎涉及同一片内存,所以比归并排序以及堆排序更优。 挺好记的。为什么要写 ...
分类:
编程语言 时间:
2020-04-01 09:16:10
阅读次数:
70
快速排序(交换范式) 快速排序代码基本上背一遍就可以了,注意 =和= mid_value) high ; a[low] = a[high]; while(low i; j ) { if (a[j 1] a[j]) { int tmp = a[j 1]; a[j 1] = a[j]; a[j] = t ...
分类:
编程语言 时间:
2020-04-01 01:18:21
阅读次数:
80
问题 解释一下算法复杂度 答案 算法一般包括以下衡量指标:正确性、可读性、健壮性、良好的时空效率,其中的时空效率就是对算法复杂度的衡量。 算法的效率一般由以下因素决定: (1)算法采用何种策略,排序算法中快速排序就快于冒泡排序 (2)问题的规模,寻找10以内的质数显然快于寻找1000以内的质数 (3 ...
分类:
编程语言 时间:
2020-03-31 19:01:35
阅读次数:
65
模板: //快速排序 #include <iostream> using namespace std; const int N = 100010; int a[N]; void qsort(int l, int r) { if(l >= r) return; int i = l - 1, j = r ...
分类:
编程语言 时间:
2020-03-31 12:49:14
阅读次数:
73
先做个热身 //递归:函数执行的时候自己调用自己 // function fn(){ // fn(); //Uncaught RangeError: Maximum call stack size exceeded // 这种死递归会导致栈溢出 // } // fn(); // function f ...
分类:
编程语言 时间:
2020-03-31 12:16:24
阅读次数:
77
"二分查找" "快速排序" "冒泡排序" 二分查找 java package com.longfor.ads2.Test; import java.util.Arrays; public class QuickSort { / 快速排序 每次把数组分割成左右两半,然后通过递归,分别在调用排序方法 / ...
分类:
编程语言 时间:
2020-03-30 00:04:09
阅读次数:
81