随笔分类 - 算法
摘要:1、平均时间复杂读O(n2); 2、基本思想:在数组中,假定前n-1个数已经排号序,现在把第n个数插入到前面有序的数组中,如此反复; 3、过程:假定前j个数是有序的,把第j + 1个数插入到前面的有序数组中; 4、代码:
阅读全文
摘要:给一个数组,从小到大排序; 1.平均时间复杂度O(n2), 2.基本思想:从数组里找到最小的一个数,放在零的位置;然后从剩下的无序数组里找到最小的数放在第二个位置,依次类推; 3.过程:遍历数组,让最小的位置为零,然后从数组中,找到最小的数所在的位置;遍历完成后,如果最小的数所在的位置和零不一样,交
阅读全文
摘要:给一组数字,要求从小到大排序; 1.时间复杂度 O(n2) ,空间复杂度 O(n+1); 2.基本思想:两个数比较大小,较小的数下沉,较大的数冒起来; 3.冒泡过程: 1.从第零个位置开始,第零个位置的数和第一个位置的数比较,大的交换到第一个位置(冒出来);然后第一个位置的数和第二个位置上的数比较大
阅读全文
摘要:package study.datastructure.sort; import java.util.Random; /** * @description: 堆排序 * 时间复杂度O(n*log2n) * 空间复杂度O(1) * 不稳定 例子: 3(0) 大根堆排序后 3(1), 3(0), 4 * 3(1) 4 **/ public class H...
阅读全文
摘要:package reverse; class Reverse{ public String reverse(String str) { char[] c=str.toCharArray(); int len=c.length; for(int i=0;i<len/2;i++) { char tmp=
阅读全文
摘要:给数组a,求出a中单个的数字 public class YH { public static void main(String[] args) { int[] a=new int[] {2,8,1,1,8,3,2}; int r=0; for(int i=0;i<7;i++) { r^=a[i];/
阅读全文
摘要:package threecolor; class Sort{ public int[] sort(int[] data) { int l=0; int r=data.length-1; int i=0; int t=0; while(i!=r) { if(data[i]==0) { t=data[
阅读全文
摘要:package arraygroup; class ArrayMerge{ //从数组后面开始放入数据 public int[] merge(int[] a,int[] b) { int lb=b.length; int la=a.length; int k=la-1; int j=lb-1; in
阅读全文
摘要:package searcharrary;//查找循环数组最小值class SearchMin{ public int search(int[] data) { int l=0; int r=data.length-1; int m=0; if(data[l]<data[r]) { return d
阅读全文
摘要:package queue; import java.util.ArrayDeque;import java.util.Deque; class SildeWindow{ public int[] getMax(Integer[] data,int window ) { Deque<Integer>
阅读全文
摘要:package stack; import java.util.Stack; class Rever{ //递归,把栈底元素压入栈底 public void rever(Stack<Integer> stack) { if(stack.isEmpty()) { return ; } int i=ge
阅读全文
摘要:package twostack; import java.util.Stack; class QuenenStack { Stack<Object> a; Stack<Object> b; public QuenenStack(Stack<Object> a,Stack<Object> b) {
阅读全文

浙公网安备 33010602011771号