zoukankan      html  css  js  c++  java
  • Java List集合冒泡法排序的两种实现

     冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

      冒泡排序算法的运作如下:

     比较相邻的元素。如果第一个比第二个大,就交换他们两个。

     对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

     针对所有的元素重复以上的步骤,除了最后一个。

     持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    方法一:

    1. 如果集合的值为int类型

    Java代码 
    1. public class TT {  
    2.   
    3.     public static void main(String[] args) {  
    4.         List<Integer> list = new ArrayList<Integer>();  
    5.         list.add(76);  
    6.         list.add(4);  
    7.         list.add(786);  
    8.         list.add(43);  
    9.         list.add(21);  
    10.         list.add(432);  
    11.         list.add(10);  
    12.         for (int i = 0; i < list.size() - 1; i++) {  
    13.             for (int j = 1; j < list.size() - i; j++) {  
    14.                 Integer a;  
    15.                 if ((list.get(j - 1)).compareTo(list.get(j)) > 0) { // 比较两个整数的大小  
    16.   
    17.                     a = list.get(j - 1);  
    18.                     list.set((j - 1), list.get(j));  
    19.                     list.set(j, a);  
    20.                 }  
    21.             }  
    22.         }  
    23.         for (Integer s : list) {  
    24.             System.out.println(s.intValue());  
    25.         }  
    26.     }  

    2. 如果集合的值为string类型("11"),并且包含空值(此处用"-"代替)

    Java代码 
    1. public static void main(String[] args) {  
    2.         List<String> list = new ArrayList<String>();  
    3.         list.add("-");  
    4.         list.add("76");  
    5.         list.add("-");  
    6.         list.add("786");  
    7.         list.add("43");  
    8.         list.add("-");  
    9.         list.add("432");  
    10.         list.add("10");  
    11.   
    12.         List<String> nullList = new ArrayList<String>();  
    13.         List<String> dataList = new ArrayList<String>();  
    14.   
    15.         for (String s : list) {  
    16.             if ("-".equals(s)) {  
    17.                 nullList.add(s);  
    18.             } else {  
    19.                 dataList.add(s);  
    20.             }  
    21.         }  
    22.   
    23.         for (int i = 0; i < dataList.size() - 1; i++) {  
    24.             for (int j = 1; j < dataList.size() - i; j++) {  
    25.                 Integer a = Integer.parseInt(dataList.get(j - 1));  
    26.                 Integer b = Integer.parseInt(dataList.get(j));  
    27.   
    28.                 if (a.compareTo(b) > 0) { // 比较两个整数的大小  
    29.   
    30.                     String temp = dataList.get(j - 1);  
    31.                     dataList.set((j - 1), dataList.get(j));  
    32.                     dataList.set(j, temp);  
    33.                 }  
    34.             }  
    35.         }  
    36.   
    37.         dataList.addAll(nullList);  
    38.         list = dataList;  
    39.   
    40.         for (String s : list) {  
    41.             System.out.println(s);  
    42.         }  
    43.     } 

    方法二:

    直接用Collections.sort进行排序

    先定义ValComparator类,

    Java代码 
    1. import java.util.Comparator;  
    2.   
    3. public class ValComparator implements Comparator<String> {  
    4.   
    5.     public int compare(String o1, String o2) {  
    6.         int seq1 = 0;  
    7.         int seq2 = 0;  
    8.         try {  
    9.             seq1 = Integer.parseInt(o1);  
    10.             seq2 = Integer.parseInt(o2);  
    11.         } catch (Exception e) {  
    12.         }  
    13.   
    14.         return seq1 - seq2;  
    15.     }  

    主程序:

    Java代码 
    1. public static void main(String[] args) {  
    2.         List<String> list = new ArrayList<String>();  
    3.         list.add("76");  
    4.         list.add("786");  
    5.         list.add("43");  
    6.         list.add("432");  
    7.         list.add("10");  
    8.   
    9.         Collections.sort(list, new ValComparator());  
    10.   
    11.         for (String s : list) {  
    12.             System.out.println(s);  
    13.         }  
    14.     } 
  • 相关阅读:
    How to Create a site at the specified URL and new database (CommandLine Operation)
    Using Wppackager to Package and Deploy Web Parts for Microsoft SharePoint Products and Technologies
    SQL Server Monitor v0.5 [Free tool]
    How to build Web Part
    Deploy web part in a virtual server by developing a Web Part Package file(.cab)
    How to recreate "sites" link if you delete it accidentally
    SharePoint Portal Server管理匿名访问设置
    Monitor sql connection from .Net SqlClient Data Provider
    Brief installation instruction of Sharepoint Portal Server
    How to Use SharePoint Alternate URL Access
  • 原文地址:https://www.cnblogs.com/interdrp/p/8056014.html
Copyright © 2011-2022 走看看