线性排序

冒泡排序

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中的算法的更多相关文章

  1. java中int算法的有趣现象

    今天无意中发现一个怪事,当时没理解,后来跟网友讨论了才知道原理,是关于int值的加法算法,两段代码如下: 代码1: @Test public void test1() { ; ; try { whil ...

  2. Java数据结构和算法(一)——简介

    本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...

  3. java基础---->Base64算法的使用

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息.详细的Base64信息,可以参见维基百科:https://en.wikipedia.org ...

  4. Java数据结构和算法(一):简介

    本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子. 编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱.一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数 ...

  5. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...

  6. Java中常用的查找算法——顺序查找和二分查找

    Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...

  7. Java中的查找算法之顺序查找(Sequential Search)

    Java中的查找算法之顺序查找(Sequential Search) 神话丿小王子的博客主页 a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数 ...

  8. Java中的经典算法之选择排序(SelectionSort)

    Java中的经典算法之选择排序(SelectionSort) 神话丿小王子的博客主页 a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕.也就是:每一趟 ...

  9. Java中的排序算法(2)

    Java中的排序算法(2) * 快速排序 * 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists). * 步骤为: * 1. 从数 ...

随机推荐

  1. day 21 内存管理,正则

    一.内存管理 1.垃圾回收 不能被程序访问到的数据,就称之为垃圾. 2.引用计数 引用计数是用来记录值得内存地址被记录的次数 每一次对值地址的引用都可以使得该值的引用计数+1 每一次对值地址的释放都可 ...

  2. Qt 文件的操作

    文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了解下 Qt 的文件以及输入输出的功能,也就是 I/O 系统. Qt 通过QIODevice提 ...

  3. 2017年5月12日15:10:46 rabbitmq不支持非阻塞调用服务器

    就像昨天碰到的问题描述一样,问题不是出在消费者上而是在生产者发送消息出现没有得到返回值时消息通道被挂起,rabbitmq发送的消息是阻塞调用即当发生阻塞时,继续发送的消息都堆在后面.在网上看到有两个方 ...

  4. wpf 命令

    上图为命令的 示例

  5. Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.java

    Maven可以使用mvn package指令对项目进行打包,如果使用Java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in ...

  6. mysql5.5.28在Linux下的安装

    1.       下载mysql 在http://dev.mysql.com/downloads/mysql/ 官网上下载mysql-5.5.28-linux2.6-i686.tar.gz. 2.   ...

  7. 2019/02/09 对于KinectFusion 的理解

    网上有很多关于Kinect Fusion 的详细介绍,包括各个部分的算法,思路,以及应用上的限制和优化. 在此就不多介绍了. KinectFusion 提供了非常基础的用RGB-D 相机实现的 Den ...

  8. 记一次idea启动tomcat后控制台乱码的坑

    IDEA的编码配置大致跟<IntelliJ IDEA 控制台中文乱码解决方案>一样 但是启动后依旧乱码!why? 后来想起来,之前因为在win10控制台下跑tomcat乱码,所以,改过一个 ...

  9. nio、bio区别,应运场景

    bio阻塞i/o a.面向流的,InputStream(),OuputStream字节输入流,字节输出流,Reader,Writer字符输入流,字符输出流 b.阻塞的IO,比如Socket,它的底层用 ...

  10. maven web工程 解决了pom.xml报错之后,maven web工程还是有个红色的叉叉 解决

    这里之前有个红色叉叉 改完了pom.xml文件之后需要:右键工程-MavenMyEclipse-Update Project 刷新Maven web 工程,即可解决此问题