线性排序

冒泡排序

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. sql注入1

    一.函数 1.version() MYsql版本 2.user()    数据库用户名 3.database()   数据库名 4.@@datadir  数据库路径 5.@@version_compi ...

  2. ES6箭头函数Arrow Function

    果然,隔了很长时间都没有来博客园上逛了...... 前一段时间一直在忙我们参加的一个比赛,转眼已经好久没有来逛过博客园了,果然还是很难坚持的...... 今天总算还是想起来要过来冒个泡,强行刷一波存在 ...

  3. vue--http请求的封装--token

    export const FetchHandler = function (url,opt) { let paramStr = ''; let token = ''; for(key in opt){ ...

  4. iOS利用xcodebuild命令自动打包方法

    1,xcode项目先打包试一下可以打包成功 2,创建一plist导出文件 3,xcodebuild命令直接运行 导出文件内容: <?xml version="1.0" enc ...

  5. SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关

    0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...

  6. 获取choice的value

  7. python 面试题1

    1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in file 2.迭代器和生成器的区别 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方 ...

  8. 关于Airtest的使用探索

    一.Airtest的简介   Airtest是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具.Airtest的框架是网易团队自己开发的一个图像识别框架,这个框架的祖宗就是一种新颖 ...

  9. 如何使用 Pylint 来规范 Python 代码风格

    如何使用 Pylint 来规范 Python 代码风格 转载自https://www.ibm.com/developerworks/cn/linux/l-cn-pylint/   Pylint 是什么 ...

  10. 小程序wx.request的封装

    第一次做小程序项目,这个封装方法是同学推荐的一个网址,对我帮助很大,如果想看代码部分,请看网址详细介绍 网络请求都写在Page里,每个请求都要重复的写wx.request以及一些基础配置: 每个页面里 ...