package cn.test.bubble;

 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;

 /**
  * @author weianlai
  * @date 2018/11/2018/11/18 18:42
  */
 public class BubbleSort {

     public static void main(String[] args) {
 //        Integer[] arr = {1,8,3,5,9};
 //        String[] arr2 = {"f","a","y"};
 //        arraySort(arr2);
 //        System.out.println(Arrays.toString(arr2));

         List<String> list = new ArrayList<String>();
         list.add("f");
         list.add("a");
         list.add("y");
         listSort(list);
         System.out.println(list);
     }

     public static <T extends Comparable<T>> void listSort(List<T> list) {
         //将list转成数组
         Object[] arr = list.toArray();
         arraySort(arr);
         //改变list的值
         for (int i = 0; i < arr.length; i++) {
             list.set(i, (T) arr[i]);
         }
     }

     /**
      * 数组冒泡排序(泛型方法)
      * @param arr
      */
     public static <T> void arraySort(T[] arr) {
         int len = arr.length;
         boolean sorted = true;
         for (int j = 0; j < len-1; j++) {
             //假定有序
             sorted = true;
             for (int i = 0; i < len-1-j; i++) {
                 if (((Comparable) arr[i]).compareTo(arr[i+1]) > 0) {
                     T temp = arr[i];
                     arr[i] = arr[i+1];
                     arr[i+1] = temp;
                     sorted = false;
                 }
             }
             if (sorted) {
                 break;
             }
         }
     }

 }

list和数组排序(冒泡)的更多相关文章

  1. java基础入门之数组排序冒泡法

    public class ArrayTest03{ /* Name:数组排序,冒泡法 Power by :Stuart Date:2015-4-23*/ public static void main ...

  2. C++面试常见问题——06数组排序

    数组排序 冒泡.最简单的冒泡,没啥好讲的 #include<iostream> using namespace std; void BubbleSort(int a[],int len){ ...

  3. vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)

    vue源码业余时间差不多看了一年,以前在网上找帖子,发现很多帖子很零散,都是一部分一部分说,断章的很多,所以自己下定决定一行行看,经过自己坚持与努力,现在基本看完了,差ddf那部分,因为考虑到自己要换 ...

  4. javascript数组排序---2冒泡

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. java - day004 - 数组排序,插入,冒泡

    // 判断string 是否相等不能用 == 使用 equal 方法 Arrays.sort(数组);  数组排序算法 对基本类型. 优化的快速排序算法 对引用类型, 优化的合并排序算法

  6. JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

    本文实例总结了JS数组排序技巧.分享给大家供大家参考,具体如下: 1.冒泡排序 var temp = 0; for (var i = 0; i < array.length; i++) { fo ...

  7. java数组排序(冒泡、直排)反转

    package lianxi; public class maopao { public static void main(String[] args){ int[] i=new int[]{45,6 ...

  8. 一些数组排序算法的简单实现(冒泡、插入、希尔、归并和qsort)

    #include <stdlib.h> #include <string.h> #include "sort.h" //冒泡排序 int bubbleSor ...

  9. 冒泡算法C#

    冒泡算法C# namespace数组排序 { classProgram { staticvoidMain(string[]args) { inttemp=; ,,,,,,,,}; #region该段与 ...

随机推荐

  1. nodejs json-t 基本测试

    安装npm包 npm i json-templater or yarn add json-templater 基本代码 var render = require('json-templater/str ...

  2. spring与hibernate注解及XML方式集成

    spring与hibernate注解及XML方式集成 Hibernate Xml方式 该种方式需要在sessionFactory中引入对应的hbm.xml文件,样例如下: <!-- spring ...

  3. php non-thread-safe和thread-safe这两个版本有何区别?

    php non-thread-safe和thread-safe这两个版本有何区别? non-thread-safe 非线程安全 与IIS 搭配环境thread-safe 线程安全 与apache 搭配 ...

  4. 使用JS 加入收藏,设为首页.

    <script type="text/javascript" language="javascript"> function AddFavorite ...

  5. DAG最长路径

    1.DAG最长路径(不记录路径) int dfs1(int s) { )return dis[s]; ; i < G[s].size(); ++i) { int to = G[s][i]; di ...

  6. 关于json_encode转义斜杠的问题

    加上参数  JSON_UNESCAPED_SLASHES即可 echo json_encode($data,JSON_UNESCAPED_SLASHES);

  7. 使用MVC实现登录功能

    首先,从底层开始即Models: (1)通用数据访问类(封装数据访问类方法):SqlHelper类 使用命名空间:using System.Data; using System.Data.SqlCli ...

  8. C++异常处理基本句法测试

    针对C++异常机制,作如下简单测试 代码如下: #include<iostream> using namespace std; int MyDivision(int a, int b) { ...

  9. 基于Windows 配置 nginx 集群 & 反向代理

    1.下载 nginx 下载页面 : http://nginx.org/en/download.html 具体文件: http://nginx.org/download/nginx-1.7.0.zip ...

  10. #用openfiledialog文件和savefileDialog打开和保存文件

    一.打开文件 Stream myStream = null;            OpenFileDialog openFileDialog1 = new OpenFileDialog();     ...