
算法
我是那颗银弹
这个作者很懒,什么都没留下…
展开
-
判断单链表中是否有环?如果有起点在哪里?环长度?
需求: 判断一个单链表是否有环?如果有换找出环的起点,以及环的长度。分析: 1)定义两个指针p1和p2,p1每次走1步,p2每次走两步,如果单链表有环则p1和p2一定会相遇;为什么一定有环一定会相遇?我们先定义一些变量:假设有环,环长为n,然后设 链表的起点 到 环起点 的长度为a,p1到环的起点时p2位于环的位置为x(0<=x<n)。 现在到...原创 2018-06-03 18:21:45 · 2433 阅读 · 3 评论 -
使用Java代码实现选择排序Java
1.算法思想: 首先找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换。如果只剩下最后一个元素,就没必要排了,它就是最大的)。再次在剩下的元素中找最小的元素,将它与数组中的第二个元素交换。如此往复,直到将整个数组排序。 为什么叫它选择排序?因为从上面的算法中可以看到它一直不断地在选择剩余元素中的最小值。2.Java代码实现:p...原创 2018-06-12 15:17:51 · 8941 阅读 · 3 评论 -
插入排序Java代码实现
1.算法思想: 类似于打斗地主,拾取一张牌,你按顺序把它插到它对应的位置上去。与选择排序一样,当前索引左边的元素都是有序的。2.Java代码实现:public static void insertSort(int[] arr) { if (arr == null || arr.length < 2) { return; } ...原创 2018-06-12 15:41:57 · 346 阅读 · 0 评论 -
二分查找(Java)
二分查找的前提是给定的序列是从大到小排列好的,例如给定一个如下数组它必须是有序的,如果无序你先给数组排序了,数组索引就会改变,查找就没有意义了。int[] arr = {11,22,35,46,64,71,84,96};二分查找的代码: public class Demo_Find { public static void main(String[] args) { ...原创 2018-05-24 21:37:36 · 3335 阅读 · 1 评论 -
(Java)堆排序
package basic_class_01;import java.util.Arrays;public class Code_03_HeapSort { public static void heapSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = 0...原创 2018-07-23 22:21:34 · 164 阅读 · 0 评论 -
(Java)归并排序
package basic_class_01;import java.util.Arrays;public class Code_05_MergeSort { public static void mergeSort(int[] arr) { if (arr == null || arr.length < 2) { return; } mergeSo...原创 2018-07-23 22:23:23 · 155 阅读 · 0 评论 -
(Java)选择排序
package basic_class_01;import java.util.Arrays;public class Code_02_SelectionSort { public static void selectionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } ...原创 2018-07-23 22:25:04 · 292 阅读 · 0 评论 -
(Java)冒泡排序
package basic_class_01;import java.util.Arrays;public class Code_00_BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (...原创 2018-07-23 22:26:35 · 178 阅读 · 0 评论 -
荷兰国旗问题(Java)
需求: 给一个数组arr,给一个数num,将数组中小于num的数放在左边,等于num的数放在中间,大于num的数全部放在右边。代码:import java.util.Arrays;public class HeLanGuoQi { public static void main(String[] args) { int[] arr = {1,5,3,6,2,8,9...原创 2018-07-15 22:44:02 · 929 阅读 · 0 评论