算法之冒泡、选择、递归、随机、循环
来源:互联网 发布:javascript 按位取反 编辑:程序博客网 时间:2024/06/06 07:29
一,冒泡排序
package com.java.method;
/**
* @author Dell
* 冒泡方法对数组元素进行排序
*/
public class MaoPao {
public static void main(String[] args) {
int[] arr={5,63,2,45,1,8,7,14};
System.out.print("排序前是:");
for (int i : arr) {
System.out.print(i+" ");
}
System.out.println();
for (int x = 0; x < arr.length-1; x++) {
//减去1是为了避免数组角标越界异常的发生,减去x是递变规律
for (int y = 0; y < arr.length-1-x; y++) {
int temp=0;
if (arr[y]>arr[y+1]) {
temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
System.out.print("排序后是:");
for (int i : arr) {
System.out.print(i+" ");
}
}
}
二,选择排序
package com.java.method;
/**
* @author Dell
* 利用选择排序对数组元素进行排序
*/
public class XuanZe {
public static void main(String[] args) {
int[] arr={15,2,3,85,0,-2,9,32};
System.out.print("排序前是:");
for (int i : arr) {
System.out.print(i+" ");
}
System.out.println();
for (int x = 0; x < arr.length-1; x++) {
for (int y = x+1; y < arr.length; y++) {
int temp;
if (arr[x]>arr[y]) {
temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
System.out.print("排序后是:");
for (int i : arr) {
System.out.print(i+" ");
}
}
}
三,递归的使用案例
1.随机产生0到100之间的10个数,并求出最大值
package com.java.method;
/**
* @author Dell
* 随机产生10个0到100之间的数并求出最大值
*/
public class RanMat {
public static void main(String[] args) {
int[] arr=new int[10];
int max=0;
System.out.print("十个数分别是:");
for (int x = 0; x < arr.length; x++) {
arr[x]=(int) (100*Math.random());
System.out.print(arr[x]+" ");
if (max<arr[x]) {
max=arr[x];
}
}
System.out.println();
System.out.print("最大的数是:"+max);
}
}
2.随机产生一个50到100之间的数
package com.java.method;
import java.util.Random;
/**
* @author Dell
* 随机产生50到100之间的数(区间可任意指定)
*/
public class RanMath {
public static void main(String[] args) {
int result=getValue();
System.out.println("符合条件的数是:"+result);
}
private static int getValue() {
Random ran=new Random();
//指定一个上限100
int result=ran.nextInt(100);
if (result<50) {
result=getValue();
}
return result;
}
}
四,嵌套循环的使用
求1,2,3,4这样四个数能组成多少个没有重复数字的三位数
package com.java.method;
/**
* @author Dell
* 1,2,3,4四个数能组成多少个无重复数字的三位数?分别是?
*/
public class Valu {
public static void main(String[] args) {
int counter=0;
System.out.print("这样的数分别是:");
for (int x = 1; x < 5; x++) {
for (int y = 1; y < 5; y++) {
for (int z = 1; z < 5; z++) {
if (x!=y&&x!=z&&y!=z) {
int val=100*x+10*y+z;
counter++;
System.out.print(val+" ");
}
}
}
}
System.out.println();
System.out.print("这样的数一共有:"+counter+"个");
}
}
- 算法之冒泡、选择、递归、随机、循环
- 随机算法之随机选择
- 冒泡和选择排序的递归算法
- 算法导论之随机选择
- 【算法】冒泡排序与选择排序的递归实现
- 排序算法之-冒泡-快速-选择
- 八大排序算法之---冒泡和选择
- 算法分析之冒泡,快速,选择排序
- 算法之排序(选择、冒泡、插入)
- JAVA常用算法之冒泡、选择、快速
- 算法学习之循环和递归
- 冒泡/递归算法
- 选择排序 冒泡排序 递归
- 随机选择算法
- 随机选择算法
- C++随机选择算法
- 随机选择算法
- 随机选择算法
- Power基于 VIOS 的虚拟以太网适配器的工作原理
- 简明vim练级攻略
- 如何给wordpress添加显示文章阅读数的功能
- 你刚才在淘宝上买了一件东西【技术普及贴】
- 修改windows service中的依存关系
- 算法之冒泡、选择、递归、随机、循环
- Linux经典面试题及答案
- 远程关闭重启计算机(windows)
- ios 多线程
- 双网卡连接公共存储
- 动作被父view拦截导致viewpager滑动不顺畅
- 每天的工作记一笔
- Android常用命令
- mpc-hc设置