import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int[] arr = {-9,78,567,23,0,70,78 -1,900, 4561}; quickSort( ...
分类:
编程语言 时间:
2020-07-31 18:02:43
阅读次数:
83
科大讯飞提前批 笔试 时间:2020-07-31 算法 给定纸币1,5,10,50,100的数量,给定对应的可用数量, 以及对应的目标值target。求出凑出目标值所用的最少纸币数量。 快速排序 矩阵相交:给定两个矩阵的对角点坐标,判断两个矩阵是否相交 给定字符串,尽可能提取字符串中整数 ...
分类:
其他好文 时间:
2020-07-31 18:00:11
阅读次数:
300
/*快速排序 算法思路: 1、在待排序的N个记录中任取一个元素(通常取第一个记录)作为基准,称为基准记录; 2、定义两个索引 left 和 right 分别表示“首索引” 和 “尾索引”,key 表示“基准值”; 3、首先,尾索引向前扫描,直到找到比基准值小的记录(left != righ),并替换 ...
分类:
编程语言 时间:
2020-07-30 16:51:14
阅读次数:
72
AcWing 838. 堆排序 #include <bits/stdc++.h> using namespace std; const int N=1e6+10; int h[N],num; void down(int u){ int t=u; if(u*2<=num&&h[u*2]<h[t]) t ...
分类:
编程语言 时间:
2020-07-30 14:25:51
阅读次数:
68
利用Java语言实现七大经典排序算法:冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序以及快速排序。 分类 类别 算法 插入排序类 插入排序、希尔排序 选择排序类 选择排序、堆排序 交换排序类 冒泡排序、快速排序 归并排序类 归并排序 复杂度 算法 平均情况 最好情况 最坏情况 辅助空间 稳 ...
分类:
编程语言 时间:
2020-07-30 01:51:43
阅读次数:
111
八种排序算法可以按照如图分类,本文主要介绍快速排序。 交换排序 所谓交换,就是序列中任意两个元素进行比较,根据比较结果来交换各自在序列中的位置,以此达到排序的目的。 快速排序 快速排序的思想很简单,就是先把待排序的数组拆成左右两个区间,左边都比中间的基准数小,右边都比基准数大。接着左右两边各自再做同 ...
分类:
编程语言 时间:
2020-07-29 15:15:23
阅读次数:
74
挖坑填数:1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。3.i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。4.再重复执行2,3二步,直到i==j,将基准数填入a[i]中。 1 int Adju ...
分类:
编程语言 时间:
2020-07-27 16:06:24
阅读次数:
71
快速排序的核心是先找到一个比较的基数,然后从左往右寻找比基数大的值,从右往左找到比基数小的值,最后交换数据 public static void quickSort(int left,int right,int[]arr){ // 获取最左边的索引和最右边的索引 int l=left; int r= ...
分类:
编程语言 时间:
2020-07-26 11:17:03
阅读次数:
91
快速排序 才发现自己配置好差,最坏情况10000就堆栈溢出了。。。。。 # coding: utf-8 import random import sys sys.setrecursionlimit(100000000) def quick_sort(li, left, right): if left ...
分类:
编程语言 时间:
2020-07-26 01:15:00
阅读次数:
65
数据结构中的栈——先进后出,先进先出 数据结构中的堆——堆的本质是一个二叉树,包括二分法查找,朗格朗日差值查找,堆排序查找极值 结构体 void main006() { struct myStruct // 结构体的意义:将多种类型的数据整合在一起 { int a[10]; int i; }; st ...
分类:
其他好文 时间:
2020-07-26 00:04:36
阅读次数:
96