
算法
Forest24
keep learning...
展开
-
在有序数组中,找到满足 >= value 的最左位置(二分查找)
【代码】在有序数组中,找到满足 >= value 的最左位置(二分查找)原创 2025-03-11 14:42:33 · 239 阅读 · 0 评论 -
算法的时间复杂度
Big O表示:一般时间复杂度我们都是讲“最差”的情况:1、比如获得数组最后位置上的值,需要的时间都是计算偏移量的时间,故随着数组变大,算法所需时间没变化。时间复杂度用O(1)表示2、访问链表最后位置上的值,随着链表的扩大,时间也是线性扩大。时间复杂度用O(n)表示不稳:两个相同的数,排完序后相对位置可能会发生变化。...原创 2019-04-26 17:51:16 · 182 阅读 · 0 评论 -
选择排序
从最前面一个一个去比较,找到最小值放在第一位。然后,从第二位开始,重复步骤。。。。。。 int[] array = {9,8,6,7,4,3,1,2}; for (int i = 0;i < array.length - 1;i++){ int min = i; for (int j = i+1;j<array.length;j++) { min = ...原创 2019-04-28 17:21:23 · 153 阅读 · 0 评论 -
冒泡排序算法
int[] array = new int[10]; //将10个随机整数放入数组 for(int i = 0;i< array.length;i++){ array[i] = (int) (Math.random()*100); System.out.print(array[i]+" "); } for (int i = 0;i...原创 2019-04-26 14:41:15 · 175 阅读 · 0 评论 -
插入排序
后面与前面比较,如果后面小,交换位置,以此类推。。。。。。 int[] array = {9,8,6,7,4,3,1,2}; for (int i = 1;i < array.length;i++){ for (int j = i;j > 0 && array[j] < array[j-1];j--){ int...原创 2019-04-28 17:53:02 · 149 阅读 · 0 评论 -
快速排序
随便取一位置作为轴pivot(此方法取最右边),从左指针left=0,右指针right=rightBound - 1,同时开始比较,从左端开店找到首个比pivot大的值,从右端找到首个比pivot小的值,如果下标left<right,说明为穿过,则交换位置,最后将pivot与left交换,轴放在该放的位置上最最后:将pivot两边按照以上步骤递归,,,pack...原创 2019-05-15 16:45:32 · 120 阅读 · 0 评论 -
计数排序
适用于数据量大,但取值范围小的情况。package com.example.demo.test;public class CountSort { public static void main(String[] args) { int[] array = {4,2,9,8,4,7,6,2,7,9,2,0,8,3,0,6,0,9,1,6,2,8,4,9,0,2,7,4,5,8,9}...原创 2019-05-15 18:04:54 · 176 阅读 · 0 评论