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. Windows 7 x64 安装 Oracle 11g Express

    1. 下载    在这里下载文件: Oracle Database Express Edition 11g Release 2 for Windows x32    Oracle 不提供 window ...

  2. C语言Socket编程(计算机网络作业)

    最近我计算机网络课程要做作业了,没办法跟着老师一步一步的写C语言的代码,使用的计算就是Socket通信发送消息:代码实现的功能很简单,客户端向服务器端发送消息,服务器端接收客户端发来的消息,并且输出显 ...

  3. Docker中配置国内镜像

    1. 为什么要为docker配置国内镜像   在正常情况下,docker有一个默认连接的国外官方镜像,在国外的网友访问该官方镜像自然不成问题,但是国内毕竟不是国外,由于国情不同,中国的网络访问国外官方 ...

  4. 使用SharpZip压缩与解压缩

    使用SharpZip压缩与解压缩 编写人:左丘文 2015-4-11 大家在做项目时,相信会经常性的会遇到要对数据流或dataset byte[] 或文件进行压缩和解压缩,比如:利用webservic ...

  5. 使用 Lombok 简化项目中无谓的Java代码

    在写使用Java时,难免会有一些模板代码要写,不然get/set,toString, hashCode, close 资源,定义构造函数等等.代码会显得很冗余,很长.Lombok项目可以是我们摆脱这些 ...

  6. yii2 memcache 跨平台交互 键和值不一样

    1 首先在配置文件中加载 web\basic\config\web.php ........ 'components' => [ 'request' => [ // !!! insert ...

  7. Tensorflow笔记——神经网络图像识别(一)前反向传播,神经网络八股

      第一讲:人工智能概述       第三讲:Tensorflow框架         前向传播: 反向传播: 总的代码: #coding:utf-8 #1.导入模块,生成模拟数据集 import t ...

  8. 一些部署django用到的linux命令

    mv untitled45/ /1601F/wang/ 将XXXX移动到XXX,也可以用于给XXX重新命名 zip -r -q -o hello.zip  /1601F/3/untitled45 安静 ...

  9. crs_register/crs_unregister 注册与移除RAC服务 --zhuanzai

    crs_register命令主要是将资源注册到CRS.该方法通常结合crs_stat -p 或者crs_profile先创建配置文件.同时crs_register也具有更新CRS的功能.本文将描述cr ...

  10. MongoDB 3.0 常见集群的搭建(主从复制,副本集,分片....)

      一.mongodb主从复制配置 主从复制是mongodb最常用的复制方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活.可用于备份,故障恢复,读扩展等. 最基本的设置方式就是建立一个主节 ...