算法复习
御风阁
藏,只为将最好的一面展示给对的人。
展开
-
算法复习之插入排序
public class InsertionSorting { public static void sort(int[]src){ for (int i = 1; i < src.length; i++) { for(int j=i;j>0;j--){ if(src[j]<src[j-1]){原创 2016-04-17 10:32:44 · 309 阅读 · 0 评论 -
算法复习之快排(C++版)
#include<iostream> #include<memory> #include<vector> #define MAX 100 using namespace std; int src[MAX]; void init(){ memset(src,0,MAX); for(int i=0;i<10;i++){ src[i] = i+1; } } voi原创 2016-07-16 22:30:23 · 350 阅读 · 0 评论 -
算法复习之希尔排序
/** * 希尔排序 * 时间复杂度O(n(3/2)) * 设置步长,通过步长分组,组内进行插入排序 * @author Feng * */ public class ShellSort { public static void sort(int[]src){ int step = src.length; do{ step原创 2016-04-17 10:56:47 · 238 阅读 · 0 评论 -
KMP算法
import java.util.Arrays; /** * KMP算法的基本思路是分析模式串,如果当前位置比较出错(之前的位置都匹配成功),则指向模式串的下标调到下一个符合模式的位置 * 比如 abcabcd中,当前下标指向d,d不匹配,由于d前面的abc与模式串前缀的abc相同,所以无需重新表abc,下标指向第二个a * * KMP算法获取next数组的方式与匹配的方式紧密相关,以原创 2016-05-07 13:09:27 · 581 阅读 · 0 评论 -
算法复习之二叉树的遍历
节点类:public class Node <T>{ public T data; public Node<T> left = null; public Node<T> right = null; public Node(T data) { super(); this.data = data; } }先根遍历:先访问根节点元素,原创 2016-05-01 11:18:53 · 261 阅读 · 0 评论 -
算法复习之选择排序
package 排序; /** * 选择排序也是排序算法里最简单的一类 * 每次选择剩余数里面最小的放到当前位置 * 时间复杂度:最好O(n),最坏O(n2),平均O(n2) * @author Feng * */ public class SelectionSort { public static void sort(int[] src){ int min ;原创 2016-04-17 10:57:57 · 300 阅读 · 0 评论 -
算法复习之快排
import java.util.Arrays; public class QuickSort { public static void sort(int[]src,int start,int end){ if(start>=end||start<0){ return ; } int aim = src[start];原创 2016-04-17 10:55:15 · 355 阅读 · 0 评论 -
算法复习之冒泡排序
/** * 冒泡排序应该算是排序算法里面最简单的一类了 * 大概有两种写法,一种从后往前,一种从前往后 * 冒泡排序时间复杂度 最好、最坏、平均都是O(n2) * 空间复杂度 1 只需要临时的交换变量 * @author Feng * */ public class BubbleSorting{ /** * 从前往后的冒泡算法 * @param src原创 2016-04-17 10:47:35 · 373 阅读 · 0 评论 -
算法复习之归并排序
/** * 归并排序,分治思想的一种体现 * 事件复杂度:最好最坏都是O(nlogn),辅助空间是O(n) * @author Feng * */ public class MergeSorting { public static void sort(int[] src,int start,int end){ if(start==end){原创 2016-04-17 10:43:30 · 371 阅读 · 0 评论 -
数字按位倒转
n个数,将其中的偶数的二进制反转 比如,输入1 6 5 6是偶数,二进制110,翻转后011,代表3,最终输出1 3 5 输入描述: 输入包含多组测试数据 对于每一组测试数据: N——输入的字数 N个数:a0,a1,a2……,an-1 保证: 1<=N<=3000,0<=ai<=INT_MAX 输出描述: 对于每个数组,输出N个整数原创 2016-06-21 21:07:45 · 536 阅读 · 1 评论