- 博客(12)
- 收藏
- 关注
原创 你一定要看的快速排序 两路快排and三路快排
快速排序 时间复杂度O(nlogn) 对于基本有序的数据是不友好的 空间复杂度依照具体算法而定 不稳定 思路 还是用到了递归的思路,在一趟中选择第一个(其实可以随机选择一个)作为基准pivot,然后对数据进行切分将通过切分,我们要达到这样一个效果:把「切分元素」放在排序以后最终应该呆的位置。【小于等于基准值的元素】基准值【大于等于基准值的元素】,然后对左边和右边再进行一次快速排序,递归地进行下去 看到这里你或许还不明白,玛徳这有什么用,接下来我来给大家好好说道说道,好好理解理解快速排
2021-04-04 09:10:26
337
原创 你一定可以理解的归并排序
归并排序 时间复杂度O(nlogn) 空间复杂度O(n) 稳定 思路 使用递归的方式不断切分子区间,当区间长度小于一定值后,对小区间采取插入排序,插入排序在小区间,基本有序的情况下的性能十分优异 写代码的时候还是有很多坑的,思路要时刻保持清醒,特别是在确定数组索引的时候`,一定要清楚地知道想干神魔 //基础版 public static void main(String[] args) { int [] nums={8,6,5,9,88,4,4,2,6,5,7,1
2021-04-04 09:08:08
92
原创 希尔排序
希尔排序 平均时间复杂度O(nlogn) 最坏O(n^2) 最好O() 空间复杂度O(1) 不稳定 思路 前面我们实现了插入排序,插入排序的特点是在基本有序或数据量小的情况下性能优异,希尔排序就是高级版的插入排序,就是在插入排序之前,对数据进行预处理 处理的方法为:因为插入排序在数据量小的情况下性能优异,所以希尔排序先对数据进行分组,减少每组的数据量, 对每组使用插入排序.然后再逐渐地减少分组的数量,使每组的数据量增加,但是这时候因为之前的处理,数据已经变得基本有序,此时使用插入排
2021-03-27 09:49:19
107
原创 选择,冒泡,插入排序
选择排序 参考:liweiwei1419 Learning-Algorithms-with-Leetcode 链接:https://www.yuque.com/liweiwei1419/algo/pbpdec 时间复杂度 O(n^2) 空间复杂度O(1) 即temp 特点 不稳定 原地排序 交换次数最少 思路 以i作为分界线,[0,i-1]的部分为排定的部分,从未排定的部分选一个最小的和i交换 就像排队一样,每次(从一群人里选一个最小的)和(排在已经排好队的后面的人)交换 选到倒数第二个人的时
2021-03-23 21:43:08
109
原创 lambda与stream基础
lambda 表达式与Stream lambda 语法 () ->{} () 中写参数 ,参数类型可省略, 因为Java支持类型推导 {} 中写逻辑代码块 省略的情况略 实例 public static void main(String[] args) { List<Person> list =new ArrayList<>(); list.add(new Person(18,"小王",2000)); list.
2021-03-21 10:22:59
95
原创 Java comparator 说明
comparator 用法 如果是第一次用到comparator 想必大家也是一脸懵逼 这里做个简单总结 如果你想对一个整形数组进行排序,比较其数值大小即可, 那么如果是一个对象list呢,这时引出comparator 来编写一个排序规则对其进行排序 代码示例如下 import java.util.*; public class test { public static void main(String[] args) { List<Person> people =n
2021-03-20 15:51:49
304
原创 tensorflow学习
tensorflow 参考tensorflow 官网教程 文章目录tensorflow1.手写数字识别2.利用Fashion MNIST 对服装图像进行分类3.TUF电影评论文本分类。4.利用cnn进行人脸识别4.1 获取人脸图片4.2 对人脸图片进行处理4.3 训练模型进行识别5.预测燃油机燃油效率6.利用CIFAR10 数据集进行图像分类 1.手写数字识别 1.导入tensorflow模块 import tensorflow as tf 2.下载数据集 mnist = tf.keras.dataset
2021-03-18 10:22:28
499
原创 力扣—— 对角线遍历
解题思路:根据题目有两种遍历方向开始为右上,然后方向改为左下,依次循环 大致思路是这样的,每次循环把一个方向的数据放入答案数组中,到达边界,改变方向; 1.确定循环次数 对于m*n矩阵,所有方向应该有m+n-1次 2.方向变更 这个问题也比较简单,对于遍历次数对2取余即可 代码大概框架 int rowLength = matrix.length; int columnLength = matrix[0].length; int[] answer =
2020-08-10 12:07:02
338
1
原创 学生信息管理系统(java基于控制台简易版)
package com.company.homework; import java.io.*; import java.util.ArrayList; import java.util.Comparator; import java.util.Scanner; public class StudentManager { public static void main(String[] args) throws IOException, ClassNotFoundException {
2020-05-31 18:01:31
1090
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅