• 插入排序,选择排序,冒泡排序等常用排序算法(java实现)


      1 package org.webdriver.autotest.Study;
      2 import java.util.*;
      3 public class sort_examp{
      4  public static void main(String[] args)
      5  {
      6   Integer[] num={49,38,65,97,76,13,27,49,78,34,12,64,1};
      7   //insertsort(num);
      8   //selectsort(num);
      9   maopaosort(num);
     10    
     11    
     12  }
     13  
     14 //直接插入排序
     15  public  static void insertsort(Integer[] num)
     16  {
     17   System.out.println("排序之前:");
     18   for(int i=0;i<num.length;i++)
     19   {
     20    System.out.print(num[i]+" ");
     21   }
     22   System.out.println();
     23   //直接插入排序,从数组第二个位置开始
     24   for(int i=1;i<num.length;i++)
     25   {
     26    //待插入元素,从第二个元素开始.num[i]为前一组元素
     27    int insertnum=num[i];
     28    int j;
     29    for(j=i-1;j>=0;j--)
     30    {
     31        //将大于待插入元素的,值往后移1位,num[j]为后一组元素
     32        if(num[j]>insertnum)
     33      {num[j+1]=num[j];}else {
     34       break;
     35      }
     36     
     37    }
     38    //直到不存在num[j]>insertnum的时候,不移动位置
     39    num[j+1]=insertnum;
     40    System.out.println();    
     41        System.out.println("第:"+i+"轮排序");
     42        for (int k = 0; k < num.length; k++)
     43        {
     44            System.out.print(num[k]+" ");
     45     }
     46     
     47   }
     48   System.out.println();
     49         System.out.println("排序之后:");
     50         for (int i = 0; i < num.length; i++) 
     51         {
     52          System.out.print(num[i]+" ");
     53          }
     54    
     55  }
     56 //选择排序
     57  public static void  selectsort(Integer[] num)
     58  {
     59   System.out.println("排序之前:");
     60   for(int i=0;i<num.length;i++)
     61   {
     62    System.out.print(num[i]+",");
     63   }
     64   System.out.println();
     65   //i为排序结果的顺序号
     66   for(int i=0;i<num.length;i++)
     67   {
     68    //假定一个最小值min
     69    int min=num[i];
     70    //n存储最小值索引(位置)
     71    int n=i;
     72    //从第二个数开始比较,把每次比较出的最小值放到左边
     73    for(int j=i+1;j<num.length;j++)
     74    {
     75     if(num[j]<min)//找出最小值
     76     {
     77      //num[j]最小,将num[j]赋值给min,并记录num[j]原来的位置保存到n
     78      min=num[j];
     79      n=j;
     80       
     81     }
     82     //将最小值跟比较值交换位置,将num[i]放到num[j]的位置
     83     num[n]=num[i];
     84     //将最小值按顺序放到i的位置
     85     num[i]=min;
     86    }
     87     System.out.println();
     88     int l=i+1;
     89        System.out.println("第:"+l+"轮排序");
     90        for (int k = 0; k < num.length; k++)
     91        {
     92            System.out.print(num[k]+" ");
     93     }
     94   }
     95   System.out.println();
     96         System.out.println("排序之后:");
     97         for (int i = 0; i < num.length; i++) 
     98         {
     99          System.out.print(num[i]+" ");
    100          }  
    101    
    102  }
    103 //冒泡排序
    104  public static void  maopaosort(Integer[] num)
    105  {
    106   System.out.println("排序之前:");
    107   for (int i = 0; i < num.length; i++) 
    108   {
    109       System.out.print(num[i]+" ");
    110   }
    111    //冒泡排序
    112   for (int i = 0; i < num.length; i++)
    113   {
    114       for(int j = 0; j<num.length-i-1; j++)
    115       {
    116        //这里-i主要是每遍历一次都把最大的i个数沉到最底下去了,没有必要再替换了
    117           if(num[j]>num[j+1])
    118           {
    119                int temp = num[j];
    120                num[j] = num[j+1];
    121                 num[j+1] = temp;
    122           }
    123       }
    124       System.out.println();
    125     int l=i+1;
    126        System.out.println("第:"+l+"轮排序");
    127        for (int k = 0; k < num.length; k++)
    128        {
    129            System.out.print(num[k]+" ");
    130     }
    131        
    132        
    133   }
    134    System.out.println();
    135    System.out.println("排序之后:");
    136     for (int i = 0; i < num.length; i++) 
    137     {
    138        System.out.print(num[i]+" ");
    139     }
    140  }
    141   
    142 }
    专注软件测试 http://www.webdriver.org
  • 相关阅读:
    通过scrapy内置的ImagePipeline下载图片到本地、并提取本地保存地址
    算法的时间复杂度和空间复杂度
    session cookie的区别最全总结
    汉明码(海明码)计算方法
    测试 markdown
    PHP扩展--opcache安装及配置
    PHP_EOL
    BUG:php7.1 访问yii数据库 自动加端口3306 报错
    BUG:upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected
    图的遍历之 深度优先搜索和广度优先搜索
  • 原文地址:https://www.cnblogs.com/zhengshuheng/p/4749092.html
Copyright © 2020-2023  润新知