![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
wming3
因为喜欢, 所以认同. sina-weibo wming3
展开
-
计算整形长度
题目大意是:在不使用sizeof()函数的情况下,取出本机的整形所占位数,如32位、64位等。分析在计算机中,常用的基本类型为:char、short int、long int、float、double。所以本体的巧妙之处在于,你不知道这个整形到底是长整形还是短整型。因此,不同的操作系统整形所占的位数长度是不同的。在常见的Windows操作系统中,int型其实是short int翻译 2015-05-07 17:27:30 · 2155 阅读 · 0 评论 -
剑指offer-题
1.斐波那契数列function fibonaci_1($n){ if($n < 2){ return $n == 0 ? 0 : 1; } return fibonaci_1($n - 1) + fibonaci_1($n - 2);}var_dump(fibonaci_1(10)); ///int(55)var_dump(原创 2015-08-06 09:15:40 · 1332 阅读 · 1 评论 -
百度面试题集锦
1. 实现一个函数,对一个正整数n,算得到1需要的最少操作次数。操作规则为:如果n为偶数,将其除以2;如果n为奇数,可以加1或减1;一直处理下去。例子: func(7) = 4,可以证明最少需要4次运算 n = 7 n-1 6 n/2 3 n-1 2 n/2 1 要求:实现函数(实现尽可能高效) int func(unsign int n);n为输入,返回最小的运算次数。给出思路(文字转载 2015-09-14 12:40:17 · 850 阅读 · 1 评论 -
二分查找和循环数组查找
1. 二分查找<?php//二分查找 数组有序function binary_search($arr, $key){ if(empty($arr) || empty($key)){ return ; } $len = count($arr); $low = 0; $high = $len - 1; while($high > $l原创 2015-08-26 14:42:39 · 1419 阅读 · 0 评论 -
排序汇总
//排序汇总 #include<stdio.h>#include <time.h>#define arr_len(array) (sizeof(array) / sizeof(array[0]))clock_t start_time, end_time;void swap(int *arr, int i, int j){ int temp = arr[i]; arr[i] =原创 2015-07-30 19:05:26 · 651 阅读 · 0 评论 -
快速排序-java实现
快速排序算法的实现//快速排序算法public class QuitSort { public static void main(String[] srgs){ int arr[] = {12,2,16,30,28,10,16,20,6,18}; show(arr); quit_sort(arr, 0, arr.length - 1); show(arr); }原创 2015-05-07 16:29:11 · 584 阅读 · 0 评论 -
二叉排序树
//二叉排序树#include <stdio.h>#include <stdlib.h> #define TRUE 1#define FALSE 0typedef int Status;//二叉树的结构体定义typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild; //左右孩子指针 }BiT原创 2015-07-29 12:43:41 · 1192 阅读 · 1 评论 -
旋转数组中的最小值
旋转数组: 把一个数组最开始的若干个元素搬到数组的末尾,我们称为数组的旋转 要求: 输入一个递增排序的数组的一个旋转,输出旋转数组的最小值. 思想: 从头到尾遍历数组一次,就能找到数组的最小值.时间复杂度是O(n); 根据旋转数组的特性,分析可以得到两个排序的子数组,前面的额子数组的元素大于后面的子数组的元素. 我们可以使用二分法查找到思路查找这个最小的元素原创 2015-07-15 21:12:00 · 1203 阅读 · 0 评论 -
冒泡排序-直接选择排序-直接插入排序-希尔排序-java实现
个人总结了4中简单的排序算法,使用java语言实现 类命名有些奇葩,主要是方便读者阅读 //冒泡排序算法 public class MaoPao {public static void main(String[] args) { int arr[] = {12,2,16,30,28,10,16,20,6,18}; show(arr); sort(arr); show(arr); }/原创 2015-07-04 19:11:49 · 939 阅读 · 0 评论 -
斐波那契数列-数组和递归-C语言
兔子在出生两个月后,就有繁殖能力,一对兔子每一个月能生成一对小兔子来,假设所有的兔子都不死,那么一年之后可以繁殖多少对兔子? 这个问题就是 典型的 斐波那契数列 斐波那契数列的特点是: 前面相邻两项之和,构成了后一项. 这里用 分别用数组和递归两种方式实现斐波那契数列的算法/*斐波那契 数组和递归实现打印前45位斐波那契数列的时候可以看到 数组的运算效率比递归要高许多递原创 2015-06-29 12:04:50 · 15257 阅读 · 1 评论 -
8大排序算法图文讲解
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插入排序插入排序示意图插入排序是一种最简单直观的排转载 2015-05-07 17:55:33 · 509 阅读 · 0 评论 -
25人赛跑问题-得出前三名
今天看到一个面试题 问题是这样的:25个人, 每5人1个跑道, 最少经过几次赛跑, 得到前3名答案为 7思路: 1.每组5人,比赛一次, 可得出 这5组的第一名 ,比赛了5次2. 再将这第一名的5人比赛一次,可以得出第一名, 由于要得出前三名,所以这次比赛的第四名和第五名以及所在的组都慢,所以就不再考虑了,比赛了6次3.在2中的第一名所在的组有可能含有第二名和第三名记为A2原创 2015-05-10 10:19:30 · 4257 阅读 · 0 评论 -
《编程之美》的概率题:一个桶里面有白球、黑球各100个,现在按下述规则取球
问题题目:有一个桶,里面有白球、黑球各100个,人们必须按照以下的规则把球取出来:1、每次从桶里面拿出来两个球;2、如果是两个同色的球,就再放入一个黑球;3、如果是两个异色的球,就再放入一个白球;问:最后桶里面只剩下一个黑球的概率是多少?【100%】思路一:用具体的方法来进行讨论可以用一个set(黑球,白球)来表示桶中的黑球和白球的输入根据规则,拿出两球放入...原创 2018-03-26 10:44:38 · 4788 阅读 · 0 评论