摘要:
1 /// <summary> 2 /// 动态规划:背包问题 3 /// </summary> 4 private static void MaxVal() 5 { 6 int capacity = 16; //背包负重 7 int[] size = new int[] { 3,4,7,8,9 }; //物品大小 8 int[] values = new int[] { 4,5,10,11,13 }; //物品价值 ... 阅读全文
摘要:
1 /// <summary> 2 /// 希尔排序 3 /// 插入排序改进版本:分区插入 4 /// </summary> 5 /// <param name="list"></param> 6 private static int[] ShellSort(int[] list) 7 { 8 int inc; 9 for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;1... 阅读全文
摘要:
1 /// <summary> 2 /// 动态规划:求最大公共子串 3 /// LCS (Longest Common Subsequence) 4 /// </summary> 5 private static string LCS(string str1, string str2) 6 { 7 var d = new int[str1.Length, str2.Length]; 8 var index = 0; 9 ... 阅读全文
摘要:
1 /// <summary> 2 /// 生男生女问题 3 /// 题目:说澳大利亚的父母喜欢女孩,如果生出来的第一个女孩,就不再生了,如果是男孩就继续生, 4 /// 直到生到第一个女孩为止,问若干年后,男女的比例是多少? 5 /// </summary> 6 /// <param name="number"></param> 7 private static void BobyBorn(int number) 8 { 9 int boy... 阅读全文
摘要:
1 /// <summary> 2 /// 上楼梯算法(迭代) 3 /// </summary> 4 /// <param name="n"></param> 5 /// <returns></returns> 6 private static long fib3(int n) 7 { 8 long x = 0, y = 0, z = 1; 9 long w, k;10 11 for (int j = 0; j... 阅读全文
摘要:
1 /// <summary> 2 /// 基数排序 3 /// 原理:首先按个位数进行排序,再以十位数排序 4 /// LSD的排序方式由键值的最右边开始,而MSD则相反,由键值的最左边开始。 5 /// </summary> 6 /// <param name="v"></param> 7 /// <returns></returns> 8 public static int[] RadixSort(int[] v) 9 {10 ... 阅读全文
摘要:
1 /// <summary> 2 /// 归并排序_合并 3 /// </summary> 4 /// <param name="v"></param> 5 /// <param name="first"></param> 6 /// <param name="mid"></param> 7 /// <param name="last"></param> 8 public static int[ 阅读全文
摘要:
1 /// <summary> 2 /// 选择排序 3 /// 原理:每次找出最小的元素排在最前面 4 /// </summary> 5 /// <param name="arr"></param> 6 /// <returns></returns> 7 public static int[] SelectionSort(int[] ary) 8 { 9 int m = 0;10 for (int i = 0; i ... 阅读全文
摘要:
1 /// <summary> 2 /// 快速排序 3 /// 原理:将数组分成两组,前面一组比后面一组小,然后前后两组依次再次划分,直到全部有序 [ref List<int> nums] 4 /// </summary> 5 /// <param name="nums">待排序数组</param> 6 /// <param name="left">数组第一个数下标</param> 7 /// <param name="right">数组 阅读全文
摘要:
1 /// <summary> 2 /// 折半插入排序 3 /// </summary> 4 /// <param name="arr"></param> 5 /// <returns></returns> 6 public static int[] HalfInsertSort(int[] arr) 7 { 8 for (int i = 1; i < arr.Length; i++) 9 {10 i... 阅读全文