算法入门
Java小柴
来自于一个java自学者的坚持
展开
-
算法入门篇:冒泡法实现数组升序排列
需求:将数组内元素按照元素数值大小进行升序排列,使用冒泡排序.针对于排序java为我们提供了很多类和方法可以实现 :如arrays类中的sort()方法可以实现,对于集合类元素可以通过collections类的sort()方法可以实现;我们研究冒泡法不仅仅是为了让数组排序,而是了为了深入了解其中的底层算法原理,后面我们学的许多高级部分的底层内容就是算法,下面我们来看看具体代码实现: 其中...原创 2018-09-16 19:31:11 · 1352 阅读 · 0 评论 -
算法入门篇:二分法查找元素
二分法查找应用在一个有序排列的数组中查找一个指定元素;让我们来徒手写一个二分法内部实现原理 首先我们需要一个有序数组: 当我们拥有三个指针后 再定义一个被查找元素数值,然后开始写出循环代码: 这个程序有个小小细节十分人性化,当我们查找一个数组中不存在的元素时 程序会打印出”没有找到的”字样...原创 2018-09-16 21:32:25 · 433 阅读 · 0 评论 -
算入入门篇:超大数字运算
小柴刚花了一小时学会一个算法;已经迫不及待想分享出来了! 激动激动~ 首先我们口算一下5的阶乘等于多少?掐指一算等于120;没毛病;在java程序里解决5!阶乘运算也就是一个for循环的事儿简单的一扒;如果我说让你用java实现50!的阶乘,你能算出来答案吗?别折腾了,面对要计算50!阶乘的结果我们的计算机君表示已阵亡.50!阶乘的结果是非常大的,已经远远超出计算机计算范围之外. 现在我们来...原创 2018-09-17 16:50:05 · 3046 阅读 · 0 评论 -
自主代码封装LinkedList集合对象
LinkedList集合内部是链表数据结构存储元素机制,前一个存储节点对象记住下一个存储节点对象的地址这样环环相扣形成一个链条,就像自行车的链条一样.每存储一个元素在链表最后节点处记住新元素对象的地址,当需要删除一个元素只需在被删除元素的前一个元素切断与被删除元素的地址引用替换成指向被删除元素后一个元素的地址,被删除元素因为没有被任何对象地址引用 则会被垃圾回收清理从而达到删除元素的效果.了解链...原创 2018-10-05 10:53:38 · 464 阅读 · 0 评论 -
面试题必考系列:数组选择排序
选择排序原理:了解选择排序后上代码:public class chooseSort { public static void main(String[] args) { int [] ints ={9,7,10,6,4,2,1,3}; //控制外循环次数 循环次数比数组元素个数少一 for(int i = 0;i<ints.length-1;i++){ //内层循...原创 2018-10-23 20:53:35 · 325 阅读 · 0 评论 -
面试题必考系列:插入排序法
插入排序相比于之前的冒泡二分法排序难度更大一点,排序过程涉及到三个循环加两个判断,想完成该算法需要了解插入排序的三个循环的原理,我在草稿纸大概描述了其中的大致原理,思路可能不太好理解,先慢慢体会一下其中的排序的原理:代码实现:public class insertSortDemo { public static void main(String[] args) { int [] int...原创 2018-10-23 21:18:13 · 431 阅读 · 0 评论