算法
文章平均质量分 87
Forest24
keep learning...
展开
-
算法的时间复杂度
Big O表示: 一般时间复杂度我们都是讲“最差”的情况: 1、比如获得数组最后位置上的值,需要的时间都是计算偏移量的时间,故随着数组变大,算法所需时间没变化。 时间复杂度用O(1)表示 2、访问链表最后位置上的值,随着链表的扩大,时间也是线性扩大。 时间复杂度用O(n)表示 不稳:两个相同的数,排完序后相对位置可能会发生变化。 ...原创 2019-04-26 17:51:16 · 137 阅读 · 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 · 113 阅读 · 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 · 112 阅读 · 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 · 108 阅读 · 0 评论 -
快速排序
随便取一位置作为轴pivot(此方法取最右边), 从左指针left=0,右指针right=rightBound - 1,同时开始比较, 从左端开店找到首个比pivot大的值,从右端找到首个比pivot小的值, 如果下标left<right,说明为穿过,则交换位置, 最后将pivot与left交换,轴放在该放的位置上 最最后:将pivot两边按照以上步骤递归,,, pack...原创 2019-05-15 16:45:32 · 85 阅读 · 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 · 140 阅读 · 0 评论