算法
Koyori每天都想转行
人如其名
展开
-
【算法学习日记】希尔排序 Java
希尔排序 在基础插入排序上进行改进,增加间隔,可以较为快速的将大的值往后放,小的值往前归。再不断缩小间隔的距离,直到间隔唯一变成插入排序。 Kunth序列间隔为h=h*3+1,比二分之一的效率要高。 class Main { public static void main(String[] args) { //希尔排序 Kunth序列 int[] arr = {34, 53, 77, 22, 35, 97, 4, 15}; int h = 1;原创 2021-03-13 18:10:57 · 95 阅读 · 0 评论 -
【算法学习日记】插入排序 Java
class Main { public static void main(String[] args) { //插入排序 int[] arr = {23, 5, 7, 58, 80, 6, 12, 25, 46}; for ( int j = 1; j < arr.length; j++) { for ( int i = j; i > 0; i--){ if ( arr[i] &l...原创 2021-03-11 17:53:39 · 94 阅读 · 2 评论 -
【算法学习日记】冒泡排序 Java
冒泡排序 两个两个进行比较,大的往后交换直到底部,每次交换到最后的数字不进行下一轮交换。二次循环中唯一变动的是需要比较的数组的长度arr.length-1。 for( int i = 0; i < arr.length-1; i++ ){ if ( arr[i] > arr[i+1] ){ swap(arr, i, i+1); } } 完整代码: class Main { public static void main(S...原创 2021-03-10 00:43:44 · 67 阅读 · 0 评论 -
【算法学习日记】选择排序 Java
【算法学习日记】选择排序Java 一、 选择排序 从小到大 class Main { public static void main(String[] args) { int[] arr = {3, 2, 5, 8, 6, 4, 9, 7, 0, 1}; for ( int i = 0; i < arr.length-1; i++ ){ int minPos = i; for ( int j = i+..原创 2021-03-09 22:40:48 · 126 阅读 · 0 评论