美文网首页
java实现多种排序算法

java实现多种排序算法

作者: Moonsmile | 来源:发表于2017-02-21 20:48 被阅读0次

冒泡排序

/**
 * Created by junyi.pc on 2017/1/25.
 */
import  java.util.Calendar;
import java.util.Scanner;
import java.util.Vector;

public class Main {
    public static void main(String[] args){
        int a[]={1,4,5,2,8,4,0,3};
        int len=a.length;
        for(int i=0;i<len-1;i++){
           for(int j=len-1;j>i;j--){
               if(a[j]<a[j-1]){
                   int temp=a[j-1];
                   a[j-1]=a[j];
                   a[j]=temp;
               }
           }
        }
        for(int i=0;i<len;i++)
        System.out.print(a[i]+" ");

    }
}
或者这样效率低的更好记
/**
 * Created by junyi.pc on 2017/1/25.
 */
import  java.util.Calendar;
import java.util.Scanner;
import java.util.Vector;

public class Main {
    public static void main(String[] args){
        int a[]={1,4,5,2,8,4,0,3};
        int len=a.length;
        for(int i=0;i<len-1;i++){
           for(int j=0;j<len-1;j++){
               if(a[j]>a[j+1]){
                   int temp=a[j];
                   a[j]=a[j+1];
                   a[j+1]=temp;
               }
           }
        }
        for(int i=0;i<len;i++)
        System.out.print(a[i]+" ");

    }
}

运行结果
C:\java\jdk1.8.0_25\bin\java -Didea.launcher.port=7540 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\java\jdk1.8.0_25\jre\lib\charsets.jar;C:\java\jdk1.8.0_25\jre\lib\deploy.jar;C:\java\jdk1.8.0_25\jre\lib\ext\access-bridge-64.jar;C:\java\jdk1.8.0_25\jre\lib\ext\cldrdata.jar;C:\java\jdk1.8.0_25\jre\lib\ext\dnsns.jar;C:\java\jdk1.8.0_25\jre\lib\ext\jaccess.jar;C:\java\jdk1.8.0_25\jre\lib\ext\jfxrt.jar;C:\java\jdk1.8.0_25\jre\lib\ext\localedata.jar;C:\java\jdk1.8.0_25\jre\lib\ext\nashorn.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunec.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunjce_provider.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunmscapi.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunpkcs11.jar;C:\java\jdk1.8.0_25\jre\lib\ext\zipfs.jar;C:\java\jdk1.8.0_25\jre\lib\javaws.jar;C:\java\jdk1.8.0_25\jre\lib\jce.jar;C:\java\jdk1.8.0_25\jre\lib\jfr.jar;C:\java\jdk1.8.0_25\jre\lib\jfxswt.jar;C:\java\jdk1.8.0_25\jre\lib\jsse.jar;C:\java\jdk1.8.0_25\jre\lib\management-agent.jar;C:\java\jdk1.8.0_25\jre\lib\plugin.jar;C:\java\jdk1.8.0_25\jre\lib\resources.jar;C:\java\jdk1.8.0_25\jre\lib\rt.jar;C:\Users\junyi.pc\Desktop\client\out\production\client;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Main
0 1 2 3 4 4 5 8 
Process finished with exit code 0

选择排序

/**
 * Created by junyi.pc on 2017/1/25.
 */

public class Main {
    public static void main(String[] args){
        int a[]={1,4,5,2,8,4,0,3,10,11};
        int len=a.length;
        for(int i=0;i<len;i++){
            int index=i;
            for(int j=i+1;j<len;j++) {
                if (a[index] > a[j]) {
                index=j;//标记一下j的位置,
                }
            }
            if(index!=i){
                int temp=a[i];
                a[i]=a[index];
                a[index]=temp;
            }
        }
        for(int i=0;i<len;i++)
            System.out.print(a[i]+" ");
    }
}

运行结果

C:\java\jdk1.8.0_25\bin\java -Didea.launcher.port=7548 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\java\jdk1.8.0_25\jre\lib\charsets.jar;C:\java\jdk1.8.0_25\jre\lib\deploy.jar;C:\java\jdk1.8.0_25\jre\lib\ext\access-bridge-64.jar;C:\java\jdk1.8.0_25\jre\lib\ext\cldrdata.jar;C:\java\jdk1.8.0_25\jre\lib\ext\dnsns.jar;C:\java\jdk1.8.0_25\jre\lib\ext\jaccess.jar;C:\java\jdk1.8.0_25\jre\lib\ext\jfxrt.jar;C:\java\jdk1.8.0_25\jre\lib\ext\localedata.jar;C:\java\jdk1.8.0_25\jre\lib\ext\nashorn.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunec.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunjce_provider.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunmscapi.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunpkcs11.jar;C:\java\jdk1.8.0_25\jre\lib\ext\zipfs.jar;C:\java\jdk1.8.0_25\jre\lib\javaws.jar;C:\java\jdk1.8.0_25\jre\lib\jce.jar;C:\java\jdk1.8.0_25\jre\lib\jfr.jar;C:\java\jdk1.8.0_25\jre\lib\jfxswt.jar;C:\java\jdk1.8.0_25\jre\lib\jsse.jar;C:\java\jdk1.8.0_25\jre\lib\management-agent.jar;C:\java\jdk1.8.0_25\jre\lib\plugin.jar;C:\java\jdk1.8.0_25\jre\lib\resources.jar;C:\java\jdk1.8.0_25\jre\lib\rt.jar;C:\Users\junyi.pc\Desktop\client\out\production\client;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Main
0 1 2 3 4 4 5 8 10 11 
Process finished with exit code 0

插入排序

/**
 * Created by junyi.pc on 2017/1/25.
 */

public class Main {
    public static void main(String[] args){
        int a[]={1,4,5,2,8,4,0,3,10,11};
        int len=a.length;
        for(int i=1;i<len;i++){
            int j=i-1;
            int k=a[i];
            while(j>-1&&k<a[j]) {//j>-1&&k<a[j]这个顺序千万不能反,否者会报越界错误
                a[j + 1] = a[j];
                j--;
            }
             a[j+1]=k;
        }
        for(int i=0;i<len;i++)
            System.out.print(a[i]+" ");
    }
}

运行结果

C:\java\jdk1.8.0_25\bin\java -Didea.launcher.port=7552 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\java\jdk1.8.0_25\jre\lib\charsets.jar;C:\java\jdk1.8.0_25\jre\lib\deploy.jar;C:\java\jdk1.8.0_25\jre\lib\ext\access-bridge-64.jar;C:\java\jdk1.8.0_25\jre\lib\ext\cldrdata.jar;C:\java\jdk1.8.0_25\jre\lib\ext\dnsns.jar;C:\java\jdk1.8.0_25\jre\lib\ext\jaccess.jar;C:\java\jdk1.8.0_25\jre\lib\ext\jfxrt.jar;C:\java\jdk1.8.0_25\jre\lib\ext\localedata.jar;C:\java\jdk1.8.0_25\jre\lib\ext\nashorn.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunec.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunjce_provider.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunmscapi.jar;C:\java\jdk1.8.0_25\jre\lib\ext\sunpkcs11.jar;C:\java\jdk1.8.0_25\jre\lib\ext\zipfs.jar;C:\java\jdk1.8.0_25\jre\lib\javaws.jar;C:\java\jdk1.8.0_25\jre\lib\jce.jar;C:\java\jdk1.8.0_25\jre\lib\jfr.jar;C:\java\jdk1.8.0_25\jre\lib\jfxswt.jar;C:\java\jdk1.8.0_25\jre\lib\jsse.jar;C:\java\jdk1.8.0_25\jre\lib\management-agent.jar;C:\java\jdk1.8.0_25\jre\lib\plugin.jar;C:\java\jdk1.8.0_25\jre\lib\resources.jar;C:\java\jdk1.8.0_25\jre\lib\rt.jar;C:\Users\junyi.pc\Desktop\client\out\production\client;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Main
0 1 2 3 4 4 5 8 10 11 
Process finished with exit code 0

快速排序


public class QuikSort {
    
    public void quikSort(int[] a,int number){
        if(a==null||number<0){
            System.out.println("input error");
        }
        else{
            quikSort1(a,0,number-1);
        }
        
    }
    public void quikSort1(int [] a,int start,int end){
                
          if(start>=end){
              return;
          }
          int i=start;
          int j=end;
          boolean flag=true;
          int value=a[i];
          
          while(i!=j){
              
              if(flag){
                  
                  if(value>a[j]){
                      swap(a,i,j);
                      flag=false;
                  }
                  else{
                      j--;
                  }
                  
              }
              else{
                  
                  if(value<a[i]){
                      swap(a,i,j);
                      flag=true;
                  }
                  else{
                    i++;
                  }
              }
          }
          
          print(a);
          quikSort1(a, start, j-1);
          quikSort1(a, start+1, end);
          
          
    }
    
    public void swap(int [] a,int i,int j){
          int temp=a[i];
          a[i]=a[j];
          a[j]=temp;
          
      }
    public void print(int [] a){
        
        for(int i =0;i<a.length;i++){
            System.out.println(a[i]+" ");
        }
        System.out.println(" ");
    }
      

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        QuikSort quikSort=new QuikSort();
        int []a={3,4,7,2,9,1};
        
        quikSort.quikSort(a, 6);
    }

}


运行结果

1 
2 
3 
7 
9 
4 
 
1 
2 
3 
7 
9 
4 
 
1 
2 
3 
7 
9 
4 
 
1 
2 
3 
7 
9 
4 
 
1 
2 
3 
4 
7 
9 
 
1 
2 
3 
4 
7 
9 
 

相关文章

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • java实现多种排序算法

    冒泡排序 选择排序 运行结果 插入排序 运行结果 快速排序 运行结果

  • java 实现排序算法之「插入排序」

    java 实现排序算法系列 这是 Java 实现排序算法的第三篇文章——插入排序算法。插入排序可以说成是「一类」简...

  • 排序

    八大排序算法 一、归并排序 递归及非递归的JAVA实现 二、快速排序 快排算法JAVA实现 三、堆排序 堆排序堆排...

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • 快速排序

    手写java版快速排序算法实现

  • 排序算法

    常见排序算法比较 参考资料:各种排序算法比较 参考资料:快速排序算法 必须知道的八大种排序算法【java实现】(一...

  • 排序算法最强总结及其代码实现(Python/Java)

    前言 本文总结了常用的全部排序算法,内容包括: 排序算法的定义和思路 排序算法的代码实现:Python和Java,...

  • 7大经典的排序算法总结实现

    作者 : 专注J2EE来源 : 博客园 常见排序算法总结与实现 本文使用Java实现这几种排序。以下是对排序算法总...

  • 【算法】排序(一)选择排序

    在排序算法中,最简单的莫过于选择排序了。 本文将介绍以下内容 排序思路算法实现(JAVA)测试阶段算法分析 排序思...

网友评论

      本文标题:java实现多种排序算法

      本文链接:https://www.haomeiwen.com/subject/lzouwttx.html