JAVA中的算法
线性排序
冒泡排序
package com.jiedada.creat; public class maopao { public static void main(String[] args) {
// TODO Auto-generated method stub
Randm arr=new Randm();
int a[]=arr.randm(10, 10, 50);
int temp;
for(int i=0;i<a.length;i++)
{
for(int j=0;j<a.length-i-1;j++)
{
if(a[j+1]<a[j])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int n:a) {
System.out.print(n+" ");
} } }
1选择排序
思想在一串数字中找到最小的和初始位置交换顺序;
这次遇到很多问题。比如在for中i<a是跳出的是a-1但是并没有执行a-1;
交换时忘记。。
在random中生成的时[0,1)的数,如果我们需要其他数需要在上面做运算
选择排序方法
package com.jiedada.one; import com.jiedada.creat.Randm; public class One { public static void main(String[] args) {
// TODO Auto-generated method stub
//Randm arr=new Randm();
Randm arr=new Randm();
int arr1[]= arr.randm(20,1,20);
for(int i=0;i<arr1.length-1;i++)
{
int minIndex=i;
int j;
for(j=i+1;j<arr1.length;j++)
{
if(arr1[j]<arr1[minIndex])
{
minIndex=j;
}
}
int temp;
temp=arr1[i];
arr1[i]=arr1[minIndex];
arr1[minIndex]=temp; }
for(int n:arr1)
{
System.out.print(n+" ");
}
} }
随机数生成代码
package com.jiedada.creat; public class Randm {
public int[] randm(int n,int min,int max)
{
int arr[]=new int[n];
for(int i=0;i<n;i++)
{
arr[i]=(int)(Math.random()*(max-min+1)); }
return arr;
}
}
2插入排序
常见错误1交换写错,逻辑写错,循环结构写错,输出数组要用加强型for循环
package com.jiedada.creat; public class CreatTwo { public static void main(String[] args) {
// TODO Auto-generated method stub
Randm arr=new Randm();
int temp;
int arr1[]= arr.randm(10, 10, 50);
for(int i=1;i<arr1.length;i++)
{
for(int j=i;j>0;j--)
{
if(arr1[j]<arr1[j-1])
{
temp=arr1[j-1];
arr1[j-1]=arr1[j];
arr1[j]=temp;
}
else
{
break;
}
} }
for(int n:arr1)
{
System.out.print(n+" ");
}
} }
改进插入排序
package com.jiedada.creat; public class CteatThree { public static void main(String[] args) {
// TODO Auto-generated method stub
Randm arr=new Randm();
int a[]=arr.randm(10, 10, 50);
for(int i=1;i<a.length;i++)
{
int j;
int s=a[i];
for(j=i;j>0;j--)
{
if(s<a[j-1])
{
a[j]=a[j-1];
}
else {
break;
}
}
a[j]=s;
}
for(int n:a)
{
System.out.print(n+" ");
} } }
树形结构
图形结构
JAVA中的算法的更多相关文章
- java中int算法的有趣现象
今天无意中发现一个怪事,当时没理解,后来跟网友讨论了才知道原理,是关于int值的加法算法,两段代码如下: 代码1: @Test public void test1() { ; ; try { whil ...
- Java数据结构和算法(一)——简介
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...
- java基础---->Base64算法的使用
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息.详细的Base64信息,可以参见维基百科:https://en.wikipedia.org ...
- Java数据结构和算法(一):简介
本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...
- Java中的经典算法之冒泡排序(Bubble Sort)
Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...
- Java中常用的查找算法——顺序查找和二分查找
Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...
- Java中的查找算法之顺序查找(Sequential Search)
Java中的查找算法之顺序查找(Sequential Search) 神话丿小王子的博客主页 a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数 ...
- Java中的经典算法之选择排序(SelectionSort)
Java中的经典算法之选择排序(SelectionSort) 神话丿小王子的博客主页 a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕.也就是:每一趟 ...
- Java中的排序算法(2)
Java中的排序算法(2) * 快速排序 * 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists). * 步骤为: * 1. 从数 ...
随机推荐
- json_encode 的局限 , 使用自定义的函数 .returnJson.
$arr = array("liming", "tom", "green"); $arr2 = array( 1 => "l ...
- Python成长之路【第四篇】模块儿
模块儿&包(* * * * *) 模块儿(modue)的概念 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多 ...
- wpf binging (六)多绑定
场景 比如我用四个textbox 需要每个控件都输入正确的数据以后 下方的 button才变成可用状态 需要把四个textbox的值转换成 true或者false 效果
- Linux安装jdk-8u161-linux-x64
最基本的操作,有一些细节需要处理,这次主要列出来步骤,其实步骤在网上一搜就有,这里只是根据个人的操作进行一些整合和注意事项的提醒罢了. 1.卸载原先的java jdk 这一步的目的是,很多Linux版 ...
- mysql 唯一索引与null.md
mysql 的唯一索引要求所有参与的列都不能够为 null 值,如果唯一索引中的任何一个元素含有 null 值,则唯一约束将不起作用. 示例代码 create table tb ( a int, b ...
- centos7.5 时间设置
# ----- 设置时间同步+时区(上海) ----- rpm -qa ntp || yum -y install ntp systemctl enable ntpd timedatectl set- ...
- 垃圾回收(GC Garbage collection)
JS有自动垃圾清理机制, 如果有不需要用的对象,只需要设置对象=null即可 Var a = new object() a = null
- 高吞吐低延迟Java应用的垃圾回收优化
高吞吐低延迟Java应用的垃圾回收优化 高性能应用构成了现代网络的支柱.LinkedIn有许多内部高吞吐量服务来满足每秒数千次的用户请求.要优化用户体验,低延迟地响应这些请求非常重要. 比如说,用户经 ...
- c++学习中的疑问
1.关于iostream头文件中的cout对象没有包含对string的<<操作符重载函数 测试代码: #include<iostream> using namespace st ...
- 14JDBC
一.JDBC简介 全名:java database connection java代码与数据库相连的工具,java>JDBC>(oracle mysql sql server) 二.四大 ...