来分析一下java里面经常会提起的几个算法,一个是二分查找法,另一个是冒泡排序法。
二分查找法是我们学java都会用到的一个简易算法。
冒泡排序算法是我们初学者经常会用到的一个排序算法。
这两个简易算法的思想是我们入门该行业的必备思想之一。代码实现千千万万最终归于思想,这是我们行业的必经之路。
二分查找法的思想如下:
看字眼就知道是什么意思了,二分二分就是把一个整体分成两部分来看待。
二分查找法也叫做折半查找。我们想寻找一个数据在什么位置,使用二分查找法,找出中间的位置,拿到中间位置数据和所要寻找的数据进行对比,如果发现中间那个数据要小就会往左边去寻找。
如何找到中间数据位置呢?需要我们定义一个下标为0的数据元素和最后一个数据为(.length-1)。中间的位置就是(两者相加)除于2。
如果发现寻找数据大于中间的位置数据则把另一侧小的数据去掉,不在寻找的范围之内,反之也是如此。
如果正好是中间的数据。直接返回结果。
如果发现找完整个数组都没有发现该寻找的数据,则也会返回没有该结果。
二分查找法
上面这一个就是二分查找法的的流程图,看图理解会比较好一点。
代码实现如下:
代码流程图
以上就是二分查找法的理解与实现。
冒泡排序算法
冒泡排序算法是一个简单的排序方法,简单点来说就是数值比较排序。
通过对待排序的序列从前向后依次比较相邻元素的值,如果发现逆序则交换。
逆序的含义:如果想把序列从小到大排序,那么两个数中前面的比后面的大就是逆序。
若需求是将序列从小到大排序,那么每一趟比较都会把值较大的逐渐从前面移动到后面。
冒泡排序
冒泡排序算法就是两两比较,第一个数字和第二个数据比较,如果第一次拿到的数值比较小于相邻的值则它不会在去比较下一个数字。
拿相邻那个大的数据进行下一轮的比较直到遇到比它大的数值,然后再次拿到比它大的数字进行比较,一直循环。直到比较完。
代码实现如上,如果你有更好的想法或者有更好的理解,可以下方留言指教一下小作者。