简单算法总结

冒泡排序法

	int[] arr = new int[10];
		int max = arr[0];
		for(int i=0;i<arr.length;i++){
			arr[i] = (int) (Math.random()*100+1);
			System.out.print(arr[i]+" ");
		}
		for(int i=0;i<arr.length-1;i++){
			for(int k=0;k<arr.length-1-i;k++){
				if(arr[k]>arr[k+1]){
					int t = arr[k];
					arr[k] = arr[k+1];
					arr[k+1] = t;
				}
			}
		}
		System.out.println();
		System.out.println(Arrays.toString(arr));

数组元素中的最大值放在数组最后一位的后面

int[] arr = new int[10];
		int max = arr[0];
		for(int i=0;i<arr.length;i++){
			arr[i] = (int) (Math.random()*100+1);
			System.out.print(arr[i]+" ");
		}
		for(int i=1;i<arr.length;i++){
			if(arr[i] > max){
				max = arr[i];
			}
		}
		System.out.println("\n"+max+"\n"+"-------------------");
		arr = Arrays.copyOf(arr, arr.length+1);
		arr[arr.length-1] = max;
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+" ");

9*9乘法表

for(int i=1;i<=9;i++){
			for(int k=1;k<=i;k++){
				System.out.print(k+"*"+i+"="+k*i+"\t");
			}
			System.out.println();
		}

随机生成10个数字,判断里面最大的数

int[] a = new int[10];
		int max = a[0];//用于存储最大值
		for(int i=0;i<a.length;i++){
			a[i] = (int) (Math.random()*100+1);
			System.out.print(a[i]+" ");
		}
		for(int i=1;i<a.length;i++){
			if(a[i]>max){
				max=a[i];
			}
		}
		System.out.println("\n"+max);

闰年判断

//能被4整除不能被100整除,或者能被400整除的就是闰年
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年份:");
		System.out.println("输入-1可退出!");
		int year = scan.nextInt();
		while(true){
			if(year <-1){
				System.out.println("输入错误!");
			}else if(year%4==0 && year%100!=0 || year%400==0){
				System.out.println(year+"是闰年");
			}else if(year == -1){
				break;
			}else{
				System.out.println(year+"是平年!");
			}
			year = scan.nextInt();
		}

斐波那契数列,求第n为上的数

	public static void main(String[] args) {

		/**
		 * 1. 斐波那契数列指的是这样一个数列  1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
	         * 数列第一项和第二项是1, 从第三项开始,每一项都等于前两项之和。
		 */
		int num = f(7);
		System.out.println(num);
	}
	public static int f(int n){
		if(n<=1) return 1;
		return f(n-1)+f(n-2);
	}

1+2+3+4+....n的和

1*2*3*4*5*.....*n的积,把sum+=i换成*=就可以了,不过要考虑溢出的问题,累减,累除一样

 int sum=0;
        for(int i=1;i<=n;i++){
            sum+=i;
        }
        System.out.println(sum);

质数:一个大于1的自然数,除了1和它本身之外,不能被其它自然数整除的数
        求2~n之间的质数

Scanner scanner = new Scanner(System.in);
		System.out.println("请输入范围2~");
		int n = scanner.nextInt();
		//除了1和它本身之外,能被其它自然数整除的数,就是质数
		//声明个boolean型变量,判断是不是质数
		boolean isPrime;
		//声明int变量,记录质数的个数
		int num = 0;
		for(int i=2;i<=n;i++){
			isPrime = true;
			for(int k=2;k<i;k++){//如果循环成功结束,说明i都不能被它小于的数整除,就是质数
				//上面已经写明k<i,说明被除数肯定小于除数,不存在取余一直为0的情况
				if(i%k==0){//取余==0说明能被整除,所以不是质数,isPrime设置为false
					isPrime = false;
					break;//不是质数,跳出,进行下个数的运算
				}
			}
			if(isPrime){//到这里,说明这个数不能被小于它的数整除,就是质数
				System.out.println(i);
				num++;//到这里,就是质数,记录个数
			}
		}
		System.out.println(num);

求 1+1/2+1/3+1/4+1/4+.....+1/n的和,要求与用户交互

Scanner scanner = new Scanner(System.in);
		System.out.println("请输入n");
		int n = scanner.nextInt();
		double sum = 0;
		for (double i = 1; i <= n; i++) {
			sum = sum + 1.0/i;
		}
		System.out.println(sum);

求9+99+999+9999+99999+......+9999999999的和

// 数列求和
        long nine = 9;
        long result = nine;
        for (int i = 2; i <= 10; i++) {
            nine = nine * 10 + 9;
            result += nine;
        }
        System.out.println("9+99+999+...+9999999999=" + result);
时间: 2024-10-29 19:07:00

简单算法总结的相关文章

图的所有简单算法实现

包括邻接链表.有向无向图.带权图.增删顶点和边.查找.连通.DFS和BFS等.这只是一个最初版本,有些复杂的算法还没有实现. package structure; //图的邻接链表的节点 public class GraphListNode { private int vertex;//图的顶点 private int weight;//边的权重 private boolean visited;//是否访问过 //带权重图的节点 public GraphListNode(int vertex,i

根据权重挑选通道的简单算法

当存在一批通道,根据权重,选择哪个通道去使用的简单算法. 利用随机数,数据区间,来获取通道. 通道权重越大,单位时间内使用该通道的概率会大一些. 代码 1 //利用了一个权重区间的比例问题,抓取随机数的可能性,来体现权重思想 2 public static void main(String[] args) { 3 //定义三个通道的权重,按随机数选拔使用哪个通道. 4 //A 10 B 70 C 30 5 //从数据库查询出list集合 6 ChannelD A=new ChannelD("A&

JS 简单算法

//分别使用while/do-while/for循环实现10的阶乘(使用递归算法) //do-while循环实现10的阶乘 var i=1; var resule=1; do{ resule *= i; i++; }while(i0;i--){ if(a%i == 0 && b%i == 0){ console.log(i); break; } } //for循环求最小公倍数 for(var i=max;ib){ min = b; max = a; }else{ min = a; max

【线性表基础】基于线性表的简单算法【Java版】

本文描述了基于线性表的简单算法及其代码[Java实现] 1-1 删除单链表中所有重复元素 // Example 1-1 删除单链表中所有重复元素 private static void removeRepeat(LinkList L) { Node node = L.head.next; // 首结点 while (node != null) // 一重循环,遍历L中的每一个元素 { // Object data=p.data; Node p = node; // q结点的前驱 Node q =

根据权重随机选取指定条数记录的简单算法实现(C#)

一.应用场景: 有时我们需要从一些列数据中根据权重随机选取指定条数记录出来,这里需要权重.随机,我们根据权重越大的,出现概率越大.例如广告系统:可根据客户支付金额大小来调控客户们的广告出现概率,客户支付金额越大,其广告出现频率越频繁,例如:加入有10条广告,然后每条广告都有一个权重,我们每次要根据权重选取5条广告出来进行显示.有了需求,我们就进行解决,本文章就是利用一种简单的算法来实现根据权重来随机选取. 二.简单算法的实现: 根据我们需求,上网找了不少资料,都没有找到一种比较适合的方案,就自己

一个简单算法题引发的思考&lt;DNA sorting&gt;(about cin/template/new etc)

首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自己平时学习中不会发现的问题,所以想写下这个博客,主要是便于自己对算法的理解. 来,上题. DNA Sorting Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 91599   Accepted: 36781 Descript

简单算法学习之快速排序详解

转自:http://developer.51cto.com/art/201403/430986.htm 讲的特别浅显易懂,特别感谢博主:啊哈磊 高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序.首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了).为了方便,就让第一个数6作为

简单算法摘录集合

PS:最近处于找工作状态,基本都会有算法笔试题,我之前基本没有接触过算法,所以结果可想而知啊,哈哈 1.简单的冒泡排序法(基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止.) 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleAp

简单算法汇总

一.全排列问题(Permutation) 问题描写叙述:即给定{1,2,3},返回123,132,213,231,312,321 <Permutation> 1)无顺序的全排列问题: 将序列P(n) = {1-.. n}的全排列问题看成P(n)={1,P(n-1)} + {2,P(n-1)}-..的问题.即确定第一个元素的值为1.然后和剩下n-1个元素的全排列结果组合到一起:然后再将1和剩下的每一个元素进行交换.然后和其剩下的n-1个元素排列结果进行组合.显然这是一个递归问题. // 递归实现

设计简单算法体验Vivado HLS的使用

前言 本文主要讲解了使用Vivado HLS设计简单C语言的二选一选择器算法的硬件HLS开发的全流程,包括工程创建-算法验证和仿真-算法综合-RTL仿真-IP封装等步骤. 参考网站: http://blog.chinaaet.com/cuter521/p/36069 http://blog.chinaaet.com/cuter521/p/36119 公司想要将立体匹配的算法进行硬件实现,无奈本人硬件小白一枚,看了基于verilog硬件实现的相关文档之后还是找不到感觉,其实FPGA进行硬件实现功能