• 冒泡法排序


     先用第一个和后面的每一个比,再用第二个和他后面的每一个比

    前冒法:

    package com.haha.test2;

    public class Test2 {

    /**
    * @param args
    */
    public static void main(String[] args) {
    int[] datas={2,3,7,4,9,1};
    System.out.println("---------old---------");
    print(datas);
    System.out.println("---------old---------");
    int n=datas.length;//6

    for(int i=0;i<n-1;i++){
    System.out.println("------------"+i+"------------");
    for(int j=0;j<n-i-1;j++){
    System.out.print(j+">>>>");
    if(datas[j]>datas[j+1]){
    //交换
    int tmp=datas[j];
    datas[j]=datas[j+1];
    datas[j+1]=tmp;
    }
    print(datas);
    System.out.println("------------------");
    }
    System.out.println("------------"+i+"------------");

    }

    }
    static void print(int[] datas){
    for(int d :datas){
    System.out.print(d+" ");
    }
    System.out.println();
    }

    }

    后冒法:

    package com.haha.test2;

    public class Test3 {

    /**
    * @param args
    */
    public static void main(String[] args) {
    int[] datas={2,3,7,4,9,1};
    print(datas);
    int n=datas.length;//6
    /*
    冒泡(后冒)
    i=0;i<n-1;
    j=0;j<n-1-i;
    if(j>j+1)
    */
    /*
    冒泡(前冒)
    i=0;i<n-1;
    j=i+1;j<n;
    if(i>j)
    */
    for(int i=0;i<n-1;i++){
    System.out.println("---------"+i+"-----------");
    for(int j=i+1;j<n;j++){
    if(datas[i]>datas[j]){
    int tmp=datas[i];
    datas[i]=datas[j];
    datas[j]=tmp;
    }
    System.out.println(j+">>>>>>");
    print(datas);
    }
    System.out.println("---------"+i+"-----------");
    }

    print(datas);

    }
    static void print(int[] datas){
    for(int d :datas){
    System.out.print(d+" ");
    }
    System.out.println();
    }

    }

  • 相关阅读:
    半同步/半反应堆线程池
    各种排序算法总结
    【面试题】求连续子数组的最大和(三种解法)
    数据结构查找、插入、删除时间复杂度
    红黑树
    opencv 图像基本操作
    plotroc.m
    roc.m
    perfcurve.m
    637. Average of Levels in Binary Tree
  • 原文地址:https://www.cnblogs.com/tian114527375/p/4939633.html
Copyright © 2020-2023  润新知