线性排序

冒泡排序

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. tomcat文件下目录介绍

    主目录下有bin ,conf ,lib ,logs ,temp ,webapps ,work 7个文件夹,下面对它们分别进行介绍: 1.bin目录主要是用来存放tomcat的命令,主要有两大类,一类是 ...

  2. 设置Linux系统的LANG变量

    设置linux系统的LANG变量 对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文 ...

  3. nginx 配置 HTTPS 及http 强制跳转https.

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  4. php 微信调用扫一扫

    类库代码: <?phpclass JSSDK { private $appId; private $appSecret; public function __construct($appId, ...

  5. 初学node遇到的问题(慢慢补充)

    一.看到菜鸟教程的Web模块运行client.js的时候遇到报错: E:\node\server>node client.js events.js:72throw er; // Unhandle ...

  6. [LeetCode&Python] Problem 703. Kth Largest Element in a Stream

    Design a class to find the kth largest element in a stream. Note that it is the kth largest element ...

  7. Vue源码之目录结构

    Vue版本:2.6.9 源码结构图 ├─ .circleci // 包含CircleCI持续集成/持续部署工具的配置文件 ├─ .github // 项目相关的说明文档,上面的说明文档就在此文件夹 ├ ...

  8. MySQL delete语句的问题

    以前遇到过几次这个问题,都觉得问题不大,所以没有记录,但是这次又遇到了,而且没有第一时间想起来,所以还是有记录下的必要 MySQL    delete语句使用子查询操作同一张表的时候会抛出 DELET ...

  9. cocos creator 刚体卡顿问题(边界会卡住)

    **问题描述:**在项目开发中,使用到了刚体, 在搭建地图过程中,发现两个相邻的砖块,即使贴合的再紧密,但星星人在上面走动的时候还是会有很大概率发生卡顿(被两个刚体的边界处卡住).为了解决这个问题,我 ...

  10. linux 修改配色

    PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ " ORvim ~/ ...