
算法
很凶的胖子
这个作者很懒,什么都没留下…
展开
-
十种排序算法总概括----时间复杂度及稳定性
稳定性 1.稳定:如果a=b,a原本在b前面,则排序之后a仍然在b前面 2.非稳定性:如果a=b,原本在b前面,则排序之后a可能会出现在b的后面。原创 2020-03-09 17:03:01 · 347 阅读 · 1 评论 -
2.递归--基本概念及思路
递归设计经验: 1.找重复:找到规模更小的子问题(本次做一部分剩下的分给下一次调用函数去做) 2.找重复中的变化量-->参数 3.找参数的变化趋势-->设计出口 例如:n的阶乘,斐波那契数列等 小练习:字符串的反转 static String reverse(String src,int end)//字符串的反转 { if(end==0) return ...原创 2020-03-04 17:46:29 · 289 阅读 · 1 评论 -
1.位运算 题六--用二进制表示十进制小数
题目:将十进制小数用二进制表示,如果不能用32位小数表示,则输出“ERROR” 思路:1.将小数乘以2,若结果大于1,则将二进制小数位上表示1,并将结果减1 2.若结果小于1,则继续乘以2,循环1,2两步,直至结果等于0 3.若小数的位数超过34位,则输出“ERROR”,结束循环。 public class erjinzhixiaoshu { public static voi...原创 2020-01-26 15:36:15 · 440 阅读 · 1 评论 -
1.位运算思维-- 题5 奇数偶数位互换
问题:将一个数的奇数和偶数位对换后,输出结果。 思路:①将这个数和101010...(32位)作与运算,记作C【目的:保留偶数位】 ②将这个数和01010101....(32位)作与运算,记作D【目的:保留奇数位】 ③将c右移一位,将d左移一位后作异或运算。【目的:将奇数偶数位对换】 图解:(以9为例,二进制是1001) import java.u...原创 2020-01-25 18:34:55 · 356 阅读 · 0 评论 -
1.位运算 题4---用一个语句判断一个整数是不是2的整数次方
原理:2的整数次方的二进制中都只有一个1。 (同题三,寻找二进制中1的个数) 这里只列出一种方法,题三连接:https://blog.youkuaiyun.com/CUIZIBO/article/details/103950902 package 位运算; import java.util.Scanner; public class poweroftwo { public void m...原创 2020-01-23 20:21:36 · 332 阅读 · 0 评论 -
1.位运算----题3 二进制中一的个数
1.原数字不动,1左移,如果将1左移i位与N与后,与1左移后相等,证明i位为1。 package 位运算; import java.util.Scanner; public class numberofone { public static void main(String[] args) { Scanner sc=new Scanner(System.in...原创 2020-01-23 19:18:43 · 252 阅读 · 0 评论 -
1.位运算--题1
题目 1-1000这1000个数放在含有1001个元素的数组中,只有唯一的一个元素重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来;不用辅助空间,能否实现。 算法 1.不需要辅助空间 注:因为知道不重复的其他数时哪些所以可以使用此方法,否则只能使用方法二 思路: 只有一个数是出现两次的,联想到 ^ 异或运算中,两个相同的数 异或 得到 0, 0 和任何一个数 ...原创 2019-12-09 23:42:19 · 235 阅读 · 0 评论 -
1.位运算--题2
题目 一个数组里除了某一个数字外,其他数字都出现了两次请写出程序找出这个数字 思路 根据题1,将数组里所有元素异或,可得到唯一不同的数字。 代码 package 位运算; import java.util.Arrays; import java.util.Random; public class dan { public static void swap(int a[],in...原创 2019-12-11 07:35:48 · 169 阅读 · 0 评论 -
c语言素数筛选(素数判定)
//方法一 定义 bool isPrime_1(int num) { int tmp=num-1; for(int i=2;i<=tmp;i++) if(num%i==0) return 0; return 1; } //方法二 定义 bool isPrime_2(int num) { int tmp=sqrt(num)+0.5; fo...原创 2019-11-12 11:19:26 · 420 阅读 · 0 评论