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. 从数 ...
随机推荐
- 2018-2019-2 学号20175223 实验二《Java面向对象程序设计》实验报告
目录 北京电子科技学院(BESTI)实验报告 实验名称:实验二 面向对象程序设计 实验内容.步骤与体会: 一.实验二 面向对象程序设计-1 二.实验二 面向对象程序设计-2 三.实验二 面向对象程序设 ...
- Java学习NO.2
这是我学习Java的第二天 学习内容: 一.运算符 赋值运算符 语法:变量名=表达式 算数运算符 + - * / % ++ -- += -= *= /= %= 其中尤为要注 ...
- Java编程思想 - 第11章 持有对象
· 大量笔记存放在Github Java文件中,请移步查看:https://github.com/iGuure/AndroidCodeHub/tree/master/Java%20pratice/Th ...
- ip代理简单方法
requests.post(url-url,headers=headers,data=data,proxies={'https':'192.165.1.56:8000'}
- 浅谈ES6新增数据类型:Symbol
面试中喜闻乐见的问题就是问我们的ES6新增了哪些个新特性 这篇文章一起学习一下新增的数据类型:Symbol JS的原始数据类型:6种Boolean,String,Undefined,NULL,Numb ...
- ---————for循环打印爱心
//打印爱心public class Xin{ public static void main (String [] args){ for(int i=1;i<=4;i++){ for(int ...
- .Net memory management Learning Notes
Managed Heaps In general it can be categorized into 1) SOH and 2) LOH. size lower than 85K will be ...
- GLog 初始化说明
#include <iostream> #include <glog/logging.h> int main(int argc, char* argv[]) { google: ...
- C#中的Cookie
cookie属性: name字段为一个cookie的名称. value字段为一个cookie的值. domain字段为可以访问此cookie的域名. path字段为可以访问此cookie的页面路径. ...
- vue.js 精学记录
v-bind:class使用的方式: 1.对象与法::class="{'active':isActive}" 此时当isActive为true时,会拥有active 2.数组语法: ...