
算法
ma451152002
欢迎来到ma451152002的博客
展开
-
剑指offer-问题40
package offer;/** * offer interview 40 */public class Test40 { public static int[] findNumbersAppearanceOnce(int[] data){ int[] result = {0,0}; if (data == null || data.leng...转载 2018-10-21 23:01:44 · 208 阅读 · 0 评论 -
二分查找算法
package offer;/** * 二分查找 */public class BinarySearch { public static int binarySearch(int[] a ,int v){ int mid; int lo = 0; int hi = a.length - 1; while (lo...转载 2018-10-28 15:14:18 · 128 阅读 · 0 评论 -
剑指offer-问题31
package offer;/** * offer interview 31 */public class Test31 { public static int findGreatestSumOfSubArray(int[] arr){ if (arr == null || arr.length < 1){ throw new I...转载 2018-10-20 18:14:45 · 178 阅读 · 0 评论 -
剑指offer-问题28
package offer;/** * offer interview 28 */public class Test28 { public static void permutation(char[] chars){ if (chars == null || chars.length < 1){ return; ...转载 2018-10-20 16:50:37 · 216 阅读 · 0 评论 -
剑指offer-问题27
package offer;/** * offer interview 27 */public class Test27 { public static class BinaryTreeNode{ int value; BinaryTreeNode left; BinaryTreeNode right; } p...转载 2018-10-20 16:35:50 · 198 阅读 · 0 评论 -
剑指offer-问题26
package offer;/** * offer interview 26 */public class Test26 { public static class ComplexListNode{ int value; ComplexListNode next; ComplexListNode sibling; ...转载 2018-10-20 12:27:20 · 108 阅读 · 0 评论 -
剑指offer-问题25
package offer;import java.util.ArrayList;import java.util.List;/** * offer interview 25 */public class Test25 { public static class BinaryTreeNode{ int value; BinaryTreeNo...转载 2018-10-20 10:04:38 · 139 阅读 · 0 评论 -
剑指offer-问题24
package offer;/** * offer interview 24 */public class Test24 { public static boolean verifySequenceOfBST(int[] sequence){ if (sequence == null || sequence.length <= 0){ ...转载 2018-10-19 18:10:20 · 176 阅读 · 0 评论 -
剑指offer-问题23
package offer;import java.util.LinkedList;import java.util.Queue;/** * offer interview 23 */public class Test23 { public static class BinaryTreeNode{ int value; BinaryTree...转载 2018-10-19 17:25:24 · 104 阅读 · 0 评论 -
剑指offer-问题22
package offer;import java.util.Stack;/** * offer interview 22 */public class Test22 { //method 1 public static boolean isPopOrder(int[] push ,int[] pop){ if (push == null ...转载 2018-10-19 16:32:27 · 111 阅读 · 0 评论 -
剑指offer-问题21
package offer;import java.util.Stack;/** * offer interview 21 */public class Test21 { public static class StackWithMin<T extends Comparable<T>>{ private Stack<T>...转载 2018-10-19 15:47:04 · 116 阅读 · 0 评论 -
剑指offer-问题19
package offer;/** * offer interview 19 */public class Test19 { public static class BinaryTreeNode{ int value; BinaryTreeNode left; BinaryTreeNode right; pub...转载 2018-10-19 15:05:56 · 135 阅读 · 0 评论 -
冒泡排序-Java
package offer;/** * 冒泡排序: * * 原理:将序列划分为无序和有序区,不断通过交换较大元素至无序区尾完成排序。 * 要点:设计交换判断条件,提前结束以排好序的序列循环。 */public class BubbleSort { private static void bubbleSort(int[] a){ for (int i = ...转载 2018-10-28 15:30:05 · 137 阅读 · 0 评论 -
堆排序-Java
package offer;/** * 堆排序: * * 原理:利用大根堆或小根堆思想,首先建立堆, * 然后将堆首与堆尾交换,堆尾之后为有序区。 * 要点:建堆、交换、调整堆 */public class HeapSort { private static void heapSort(int[] a) { // 先创建大堆,从第一个非叶子结点开始调整...转载 2018-10-28 16:56:48 · 135 阅读 · 0 评论 -
插入排序-Java
package offer;/** * 插入排序 * 原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。 * 要点:设立哨兵,作为临时存储和判断数组边界之用。 */public class InsertSort { private static void insertSort(int[...转载 2018-10-28 17:20:30 · 146 阅读 · 0 评论 -
剑指offer-问题39
package offer;/** * offer interview 39 */public class Test39 { private static class BinaryTreeNode{ int val; BinaryTreeNode left; BinaryTreeNode right; publ...转载 2018-10-21 22:33:48 · 169 阅读 · 0 评论 -
剑指offer-问题38
package offer;/** * offer interview 38 */public class Test38 { private static int getFirstK(int[] data,int k,int start,int end){ if (data == null || data.length < 1 || start >...转载 2018-10-21 21:17:32 · 204 阅读 · 0 评论 -
剑指offer-问题37
package offer;/** * offer interview 37 */public class Test37 { private static class ListNode{ int val; ListNode next; public ListNode(){} public ListNode(int...转载 2018-10-21 20:24:47 · 155 阅读 · 0 评论 -
剑指offer-问题36
package offer;/** * offer interview 36 */public class Test36 { public static int inversePairs(int[] data){ if (data == null || data.length < 1){ throw new IllegalArgu...转载 2018-10-21 18:55:22 · 202 阅读 · 0 评论 -
剑指offer-问题35
package offer;import java.util.LinkedHashMap;import java.util.Map;import java.util.Set;/** * offer interview 35 */public class Test35 { public static char firstNotRepeatingChar(String s...转载 2018-10-21 17:31:47 · 166 阅读 · 0 评论 -
剑指offer-问题34
package offer;/** * offer interview 34 */public class Test34 { //method 1 private static boolean isUgly(int num){ while (num % 2 == 0){ num /= 2; } ...转载 2018-10-21 11:13:15 · 150 阅读 · 0 评论 -
剑指offer-问题33
package offer;import java.util.Comparator;/** * offer interview 33 */public class Test33 { public static class MComparator implements Comparator<String>{ @Override ...转载 2018-10-21 10:07:04 · 203 阅读 · 0 评论 -
快速排序算法-Java
package offer;import java.util.PrimitiveIterator;/** * 快速排序 * 原理:不断寻找一个序列的中点,然后对中点左右的序列递归的进行排序,直至全部序列排序完成,使用了分治的思想。 * 要点:递归、分治 */public class QuickSort { private static void quickSort(i...转载 2018-10-28 19:53:22 · 177 阅读 · 0 评论 -
希尔排序-Java
package offer;/** * 希尔排序: * 插入排序的升级版本 * “缩小增量排序” */public class ShellSort { private static void shellSort(int[] a){ int j; int tmp; for (int gap = a.length / 2; g...转载 2018-10-28 18:57:51 · 157 阅读 · 0 评论 -
选择排序-Java
package offer;import com.sun.org.apache.bcel.internal.generic.SWAP;/** * 选择排序法 * 原理:将序列划分为无序和有序区, * 寻找无序区中的最小值和无序区的首元素交换, * 有序区扩大一个, * 循环最终完成全部排序 */public class SelectSort { private s...转载 2018-10-28 18:47:06 · 149 阅读 · 0 评论 -
归并排序-Java
package offer;/** * 归并排序: * 原理:将原序列划分为有序的两个序列,然后利用归并算法进行合并,合并之后即为有序序列。 要点:归并、分治 */public class MergeSort { private static void mergeSort(int[] a) { int[] b = new int[a.length]; ...转载 2018-10-28 18:37:55 · 145 阅读 · 0 评论 -
剑指offer-问题18
package offer;import java.sql.ResultSet;/** * offer interview 18 */public class Test18 { public static class BinaryTreeNode{ int value; BinaryTreeNode left; Binary...转载 2018-10-19 13:36:54 · 113 阅读 · 0 评论 -
剑指offer-问题17
package offer;/** * offer interview 17 */public class Test17 { public static class ListNode{ int value; ListNode next; public ListNode(){} public ListNode(in...转载 2018-10-19 11:56:42 · 133 阅读 · 0 评论 -
求三个数的平均数
题目:输入三个整数,输出他们的平均值。保留3位小数。#include int main(){ int m , n , v ; double avg; scanf("%d%d%d", &m,&n,&v); //C语言中不能中间声明变量,要在程序的开始位置将变量定义。 //double avg = (m + n + v )/3.0; avg = (m + n + v )原创 2012-11-04 15:25:06 · 5139 阅读 · 0 评论 -
温度之间的转化
输入华氏温度f,输出对应的摄氏温度c,保留三位小数。提示:c=5(f-32)/9.#include int main(){ double f;//华氏温度 double c;//摄氏温度 scanf("%lf",&f); c = 5.0 * (f - 32)/9.0; printf("%.3lf",c); return 0;}原创 2012-11-04 15:34:48 · 603 阅读 · 0 评论 -
求圆柱体的表面积
问题:输入底面积半径r和高h,输出圆柱体的表面积。(保留3位小数)#include#includeint main(){ const double PI = 4.0 * atan(1.0);//计算π值 double r,h,s1,s2,s; scanf("%lf%lf",&r,&h); //读入半径和高 s1 = PI * r * r ; //计算上底或下底的面积原创 2012-10-22 21:54:41 · 875 阅读 · 0 评论 -
A+B的问题
求两个整型数的和:#include int main(){ int a,b; scanf("%d%d",&a,&b);//从控制台读入两个整型数,不要忘了& printf("%d\n",a+b); return 0;}原创 2012-10-22 21:39:02 · 756 阅读 · 0 评论 -
如何用c语言,输出%d、\n等特殊字符
如何用c语言,输出%d、\n等特殊字符?#include int main(){ printf("%%d");//在屏幕中输出%d// printf("\\n");//在屏幕中输出\n// printf("%%%%%d"); //%%0// printf("%d");//0// printf("%%%%d");//%%d return 0;}原创 2012-10-30 11:21:04 · 31583 阅读 · 2 评论 -
C语言中的输出%d和%lf格式的数据
以下是C语言中的格式输出%d和%lf:#include int main(){ //C语言中两个整数相除,结果为整数, //取整数部分,而不是四舍五入。 printf("%d\n",(-8)/5); //-1 //C语言中,如果两个数相除,则精度低的数的类型将自动转化为精度高的数的类型。 printf("%.1lf\n",8.0/5); // 1.6 printf("%.原创 2012-10-22 15:11:14 · 11692 阅读 · 2 评论 -
在vc6.0中除数为零的验证
#include int main(){// double num = 1.0 / 0.0 ;//error C2124: divide or mod by zero // printf("%lf",num);// double num = 1.0 / 0; //error C2124: divide or mod by zero // printf("%lf",num);//原创 2012-10-30 11:08:38 · 1138 阅读 · 0 评论 -
C语言在中<math.h>中sqrt()函数的使用
C语言在中中sqrt()函数的使用:功 能: 计算一个非负实数的平方根 函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double);说明:sqrt系Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。头文件:math 如下代码是对所操作的数进行开平方操作。#include原创 2012-10-22 21:22:14 · 71940 阅读 · 1 评论 -
三整数排序
题目:三整数排序输入三个整数,从小到大排序后输出。样例输入:20 7 33样例输出:7 20 33 第一种方法,列出所有的排列组合,进行判断求解。#include int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); //尝试所有的组合方式进行求解 if(a <= b && b <= c) { printf原创 2012-10-29 14:46:12 · 820 阅读 · 0 评论 -
鸡兔同笼
问题:鸡兔同笼 已知鸡和兔的总数量为n,总腿数为m.输入m和n,依次输出鸡的数目和兔的数目。如果无解,则输出“No answer”(不要引号)。样例输入:14 32样例输出:12 2样例输入: 10 16样例输出:No answer 分析:建立二元一次方程组,假设鸡的数目为a,兔的数目为b。求解方程组,然后排出错误的答案。 #include in原创 2012-10-29 14:11:29 · 1848 阅读 · 0 评论 -
变量交换
题目:变量交换输入两个整数a和b,交换两者的值,然后输出。样例输入: 824 16样例输出:16 824 第一种方法为三变量法: #include int main(){ int a , b , tmp; scanf("%d%d",&a,&b); tmp = a; a = b; b = tmp; printf("%d %d",a,b);}第二原创 2012-10-29 13:42:45 · 891 阅读 · 0 评论 -
剑指offer-问题3
package offer;public class Test03 { /** * offer问题3 * @param matrix * @param number * @return */ public static boolean find(int[][] matrix,int number){ if (...转载 2018-10-17 21:51:08 · 156 阅读 · 0 评论