zoukankan      html  css  js  c++  java
  • 冒泡排序&&选择排序 以及时间效率对比

      1 package com.test4;
      2 import java.util.*; //Calendar 显示时间
      3 /**
      4  * @author qingfeng
      5  * 功能:冒泡排序
      6  */
      7 public class Bubble {
      8 
      9     public static void main(String[] args) {
     10         // TODO Auto-generated method stub
     11         //int arr[] = {10,1,-20,89,-1,78,-45};
     12         
     13         //随机产生大量数据
     14         
     15         int len = 50000;
     16         int[] arr = new int[len];
     17         
     18         
     19         for(int i=0; i<len; i++)
     20         {
     21             //产生1到1000的数
     22             arr[i] = (int)(Math.random()*1000);
     23         }
     24         /*
     25         for(int i=0; i<len; i++)
     26         {
     27             System.out.print(arr[i]+" ");
     28         }
     29         System.out.println();
     30         */
     31         BubbleSort bs = new BubbleSort();
     32         //显示排序前的时间
     33         Calendar time = Calendar.getInstance();//获取时间实例
     34         System.out.println("排序前的时间为:"+time.getTime());//50000个数排序4秒
     35         bs.sort(arr);
     36         
     37         /*
     38         SelectSort  ss = new SelectSort(); //50000个数排序1秒
     39         ss.sort(arr);
     40         */
     41         /*
     42         int a = 1;
     43         bs.test(a);
     44         System.out.println("a的值为:"+a);//a的值为1 并不是2 因为是值传递
     45         */
     46         
     47         /*
     48         System.out.println("-----------------------------");
     49         for(int i=0; i<arr.length; i++)
     50         {
     51             System.out.print(arr[i]+" ");
     52         }
     53         System.out.println();
     54         */
     55         //显示排序前的时间
     56         Calendar time2 = Calendar.getInstance();//获取时间实例
     57         System.out.println("排序后的时间为:"+time2.getTime());
     58     }
     59 }
     60 //冒泡排序
     61 class BubbleSort
     62 {
     63     public void test(int a)//值传递
     64     {
     65         a++;
     66     }
     67     public void sort(int arr[]) //引用传递(复合类型)
     68     {
     69         int temp;
     70         
     71         //冒泡排序
     72         //外层循环:n个数  n-1趟排序
     73         for(int i=0; i<arr.length-1; i++)
     74         {
     75             //内层循环:若前比后打则交换   (每趟比前一趟少排一个数:所以"-i")
     76             for(int j=0; j<arr.length-1-i; j++)
     77             {
     78                 if(arr[j]>arr[j+1])
     79                 {
     80                     temp = arr[j+1];
     81                     arr[j+1] = arr[j];
     82                     arr[j] = temp;            
     83                 }
     84             }
     85         }
     86     }
     87 }
     88 //选择排序
     89 class SelectSort
     90 {
     91     public void sort(int arr[])//引用传递
     92     {
     93         //外层循环:n个数 n-1趟排序  最后一个数不要再次排序
     94         for(int i=0; i<arr.length-1; i++)
     95         {
     96             int min=arr[i];
     97             int minIndex = i;
     98             
     99             int j;
    100             int temp;
    101             //内层循环:选择min值
    102             for(j=i+1; j<arr.length; j++)
    103             {
    104                 if(min > arr[j])
    105                 {
    106                     min = arr[j];
    107                     minIndex = j;
    108                 }    
    109             }
    110             //最小值和每趟第一个值交换
    111             temp = arr[i];
    112             arr[i] = arr[minIndex];
    113             arr[minIndex] = temp;
    114         }
    115     }
    116         
    117 }
  • 相关阅读:
    前端学HTTP之重定向和负载均衡
    前端学HTTP之Web主机托管
    前端学HTTP之内容协商
    前端学HTTP之字符集
    前端学HTTP之实体和编码
    前端学HTTP之安全HTTP
    前端学HTTP之摘要认证
    前端学HTTP之基本认证
    前端学HTTP之客户端识别和cookie
    前端学HTTP之网关、隧道和中继
  • 原文地址:https://www.cnblogs.com/qingfengzhuimeng/p/6495762.html
Copyright © 2011-2022 走看看