- 博客(18)
- 资源 (18)
- 收藏
- 关注
原创 有意思的堆排序和堆
堆简介经典的十大排序算法中有一种算法叫做堆排序。堆排序是借助于堆这种特殊的数据结构来实现的一种排序算法。说起堆的时候大家脑海里的第一反应就是一个树状的数据结构。其实堆是一类数据结构的统称,堆有二叉堆,二项堆,斐波那契堆,左偏树等等。堆排序就是借助于二叉堆(binary heap)来实现的。二叉堆是完全二叉树,同时满足堆的特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,并且每个节点的左子树和右子树都是一个二叉堆。当父节点的值总是大于或者等于任何一个子节点的时候称为最大堆或者大顶堆、大根堆
2021-05-16 16:41:16
182
原创 超简单的插入排序
插入排序和冒泡、选择一样都算是一种超级简单的排序算法。插入排序名字里有个插入,它的排序算法确实和插入这个动作有关。基本思想是把数据分为两部分,一部分已经排好序,另外一部分待排序。然后将一个待排序的元素插入到已排序元素的合适位置。最终得到一个排好序的元素集合。算法步骤将第一个元素看为是已经排好序的集合,从二个元素开始到末尾认为是待排序集合;从待排序集合的第一个位置拿出元素,标记为新元素;从已排序元素集合的末尾开始往前扫描,如果元素大于新元素,则向后挪动一位;重复步骤3,直到找到的已排序元素小于或者
2021-05-09 23:45:28
615
2
原创 一分钟搞定基础排序算法——选择排序
选择排序可以看做是冒泡排序的一个改进型。工作原理也是非常的简单:(此处用从小到大排序举例)第一轮,整个数组从0号位开始,从左到右遍历一遍,找出最小的元素,将其放在数组的0号位。第二轮,从1号位开始遍历一遍,找出最小值,将其放在数组的1号位。以此类推直到结束。就完成了选择排序。尝试实现如上图所示,有一个待排序的数组nums。按开头时讲述的算法步骤。第一趟,从0号位开始我们从左到右遍历,找出最小值。此时准备3个指针。i直接指向0号位,标记此时的未排序数组的第一个位置。index,指向找到的最小值(开始时暂
2021-05-05 20:25:29
273
原创 什么是冒泡排序?
什么是冒泡排序?最近开始重学算法。先从最简的冒泡排序开始。这里做个笔记方便后面复习。对于冒泡排序算法的定义,相对于其他资料,百度百科里的介绍相对详细一点——冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降
2021-05-05 20:20:24
3412
原创 经典排序算法--Java实现
import removeNthFromEnd.ListNode;import studyproxy.staticproxy.MaskInterface;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;public class ClassicSort { publ...
2019-01-29 14:54:10
144
原创 kotlin-android-extensions 插件无效问题
导入了几个第三方库后突然发现viewid部分代码飘红.查看文件顶部,发现导入的kotlinx.android.syntheticandroidx.recyclerview.widget.LinearLayoutManager这些库出现异常。此外studio还自动导入了一个import xx.xx.R.id.*删掉马上又自动导回来。检查build.gradle 文件ap...
2019-01-04 15:53:21
9817
4
原创 kotlin 写的Android toast工具类
原文地址:https://rongi.github.io/kotlin-blog/kotlin/2017/06/28/toast.htmlGoogle的时候翻到了一个别人用kotlin实现的toast工具类感觉很棒,特别记录一下:实现fun Any.toast(context: Context, duration: Int = Toast.LENGTH_SHORT): Toas...
2019-01-03 09:28:02
3848
原创 Kotlin ARouter 集成错误记录
Kotlin ARouter 集成错误记录先写结论:在module的 build.gradle文件中添加apply plugin: 'kotlin-android'apply plugin: 'kotlin-kapt'apply plugin: 'kotlin-android-extensions' kapt {arguments {arg("AROUTER_M...
2019-01-02 15:53:09
12263
3
原创 两数相除-kotlin
给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数dividend除以除数divisor得到的商。示例1:输入: dividend = 10, divisor = 3输出: 3示例2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均...
2018-12-25 14:49:05
5878
原创 kotlin的相等性 == 和===
kotlin的相等性 == 和===对kotlin的相等性做个简单的记录kotlin中有两种类型的相等性结构相等引用相等结构相等这个可以简单的理解为判断内容是否相等(Java的equals方法),使用的是 == 符号来实现kotlin中的a == b等价于下面这种a?.equals(b) ?: b == null这个kotlin写法翻译为Java可以用下面这种写法表...
2018-12-21 14:55:04
1488
原创 括号生成(kotlin)
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]这个问题第一反应是暴力穷举。n为几,就创建几对括号,然后排列组合,去掉重复和无效的。例如n=1,就是生成两组() 括号,编号为A1(...
2018-12-07 14:56:33
351
原创 删除链表的倒数第N个节点 (Java)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗? 思路很简单,采用双指针pre 和index,开始时两个都指...
2018-12-06 15:17:41
623
原创 最接近的三数之和(kotlin)
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).解法参考的是三数之和,简单修改一下就行...
2018-12-06 13:58:26
249
原创 三数之和(kotlin)
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]] 第一反应是穷举...
2018-12-06 11:02:25
314
原创 罗马数字转整数(kotlin)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...
2018-12-05 17:02:13
195
原创 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1...
2018-12-05 16:08:50
227
原创 python 爬虫错误记录
1、UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcf in position 116: invalid continuation byte问题原因:html = response.read().decode('utf-8'),代码里面这样读取网页,但是目标小说网站的网页编码为gbk解决办法:html = response.re...
2018-10-10 15:00:29
367
原创 Android sudio 编译工程错误记录
Android studio 编译工程报错,做个简单的记录1、Cause: com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava/io/File;)Vstudio导入https://github.com/manuelvicnt/RxJava2-MVVM-Android...
2018-10-09 16:47:01
7767
Java加密与解密的艺术 第二版(清晰+书签+完整版).pdf
2018-05-15
Android2.0 中读取联系人——ContactsContract
2010-03-15
Android新手开发入门(使用于对android零基础的初学者)
2010-03-03
Google Android SDK开发范例大全 第四章- - 史上超豪华的手机控件
2009-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人