zoukankan      html  css  js  c++  java
  • 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+" ");
            }
    
        }
    
    }
    View Code

    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+" ");
           }
        }
    
    
    
    }
    View Code

    随机数生成代码

    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;
         }
    }
    View Code

     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+" ");
        }
        }
    
    }
    View Code

    改进插入排序

    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+" ");
            }
    
        }
    
    }
    View Code

    树形结构

    图形结构

  • 相关阅读:
    从三道题目入门frida
    APP 抓包(应用层)
    安卓开发--探究碎片Fragment
    centos7-查询内存/硬盘等详细信息
    网页视频下载神器
    error: C++ preprocessor "/lib/cpp" fails sanity check错误解决方法
    make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误
    安装docker后修改docker文件目录
    centos集群中各节点如何实现时间同步?
    redhat7.5 yum不能用
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/10733877.html
Copyright © 2011-2022 走看看