• 快速、插入和冒泡排序(java版-代码篇)


     1 import java.util.Random;
     2 public class Test
     3 {
     4     public static void main(String[] arg){
     5         Random r=new Random();
     6         int[] arrs=new int[10];
     7         for(int i=0;i<arrs.length;i++){
     8             arrs[i]=r.nextInt(50);//随机生成排序数
     9         }
    10 
    11         show(arrs);//排序前
    12         System.out.println("");//换行
    13 
    14         quick_sort(arrs,0,arrs.length);//快速排序方法
    15         insert_sort(arrs);//插入排序
    16         bubbling_sort(arrs);//冒泡排序
    17 
    18         show(arrs);//排序后
    19 
    20 
    21     }
    22 
    23     //显示
    24     private static void show(int[] arrs){
    25         for(int i=0;i<arrs.length;i++){
    26             if(i<arrs.length-1){
    27                 System.out.print(arrs[i]+",");
    28             }else{
    29                 System.out.print(arrs[i]);
    30             }
    31         }
    32     }
    33 
    34     //快速排序
    35     private static void quick_sort(int[]arrs,int left,int right){
    36         if(left<right){
    37             int i=left;
    38             int j=right-1;
    39             int middle=arrs[(left+right)/2];
    40 
    41             while(true){
    42                 while(i<right && arrs[i]<middle){
    43                     i++;
    44                 }
    45                 while(j>0 && arrs[j]>middle){
    46                     j--;
    47                 }
    48                 if(i==j){
    49                     break;
    50                 }
    51                 
    52                 //设变量交换两数
    53                 int temp=0;
    54                 temp=arrs[i];
    55                 arrs[i]=arrs[j];
    56                 arrs[j]=temp;
    57 
    58                 if(arrs[i]==arrs[j]){
    59                     j--;
    60                 }
    61 
    62             }
    63             quick_sort(arrs,left,i);
    64             quick_sort(arrs,i+1,right);
    65         }
    66     }
    67 
    68     //插入排序
    69     private static void insert_sort(int[] arrs){
    70         for(int i=0;i<arrs.length;i++){
    71             for(int j=i;j>0&&arrs[j]<arrs[j-1];j--){
    72                 /*int temp=0;
    73                 temp=arrs[j];
    74                 arrs[j]=arrs[j-1];
    75                 arrs[j-1]=temp;*/
    76 
    77                 //不设变量的交换
    78                 arrs[j]=arrs[j]+arrs[j-1];
    79                 arrs[j-1]=arrs[j]-arrs[j-1];
    80                 arrs[j]=arrs[j]-arrs[j-1];
    81             }
    82         }
    83     }
    84     
    85     //冒泡排序
    86     private static void bubbling_sort(int[] arrs){
    87         for(int i=0;i<arrs.length;i++){
    88             for(int j=0;j<arrs.length;j++){
    89                 if(arrs[i]<arrs[j]){
    90                     arrs[i]=arrs[i]+arrs[j];
    91                     arrs[j]=arrs[i]-arrs[j];
    92                     arrs[i]=arrs[i]-arrs[j];
    93                 }
    94             }
    95         }
    96     }
    97 }

    运行结果:

  • 相关阅读:
    Vue.js的组件化思想--下
    Vue.js的组件化思想--上
    Git常用命令总结
    vue基础语法
    ES6基础语法
    Vue笔记
    Vue的基本使用(一)
    es6的基本用法
    Django-admin管理工具
    Django组件-中间件
  • 原文地址:https://www.cnblogs.com/comrd/p/3245280.html
Copyright © 2020-2023  润新知