随笔分类 -  算法

一些经典的算法题和算法学习笔记
0.29*100的问题
摘要:写算法过程中,需要取0.29的小数位数字: 用: int n = (int)(0.29*100) % 10; 但是算出来的n是8,很奇怪 最后通过: int n = (int)((0.29*1000)/10) % 10; 才得到正确结果; 上网搜了一下问题,发现和计算机存储数据原理有关,等后面有时间 阅读全文

posted @ 2020-02-05 23:23 lingzshen 阅读(442) 评论(0) 推荐(0)

排序算法——快速排序
摘要:快速排序的原理:在待排序的数字序列{0, 1, ... , n-1, n}中随机选择一个数字作为基准数(一般选择序列中的第一个数字),接着从最后一个元素开始,向前找小于基准数的元素,找到的话,把元素x的值赋到基准数的位置;接着从基准数的下一个位置开始向后查找大于基准数的元素,找到的话,把该元素的值赋 阅读全文

posted @ 2018-03-18 22:32 lingzshen 阅读(164) 评论(0) 推荐(0)

排序算法——堆排序
摘要:堆定义:堆是基于完全二叉树的一种数据结构,并且满足条件:每个根节点的数据都比他的叶子节点的数据要大(大顶堆)或小(小顶堆); 堆排序:基于堆这种数据结构进行排序的方法叫做堆排序; 排序方法及步骤: 我们用数组结构来实现堆,假设有一个堆使用长度为length的数组array实现,由数学及数据结构知识可 阅读全文

posted @ 2018-03-14 23:27 lingzshen 阅读(209) 评论(0) 推荐(0)