当前位置: 首页 > news >正文

【好程序员特训营】Java中常用的排序方法

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。
快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。
冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。
选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。
插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。

快速排序法
利用Arrays自带的方法
import java.util.Arrays;
public class Test2{
        public static void main(String[] args){
                int[] a={3,4,7,1,9,12,34,2};
                Arrays.sort(a);  //进行排序
                for(int i: a){
                        System.out.print(i);
                }
        }
}
冒泡排序法
相邻元素比较,大了就往后排
public static int[] bubbleSort(int[] args){//冒泡排序算法
                for(int i=0;i<args.length-1;i++){
                        for(int j=i+1;j<args.length;j++){
                                if (args >args[j]){
                                        int temp=args;
                                        args=args[j];
                                        args[j]=temp;
                                }
                        }
                }
                return args;
        }
选择排序法
选出最大或最小,直接放置相应位置
public static int[] selectSort(int[] args){//选择排序算法
                for (int i=0;i<args.length-1 ;i++ ){
                        int min=i;
                        for (int j=i+1;j<args.length ;j++ ){
                                if (args[min]>args[j]){
                                        min=j;
                                }
                        }
                        if (min!=i){
                        int temp=args;
                        args=args[min];
                        args[min]=temp;        
                        }
                }
                return args;
        }
插入排序法
public static int[] insertSort(int[] args){//插入排序算法
                for(int i=1;i<args.length;i++){
                        for(int j=i;j>0;j--){
                                if (args[j]<args[j-1]){
                                        int temp=args[j-1];
                                        args[j-1]=args[j];
                                        args[j]=temp;        
                                }else break;
                        }
                }
                return args;
        }

相关文章:

  • 【好程序员特训营】Java中随机数处理
  • 【好程序员特训营】IO常用流的功能及特性
  • 【好程序员特训营】Java类与对象
  • 【好程序员特训营】Java网络连接测试小例子
  • Unity4.6中修改RectTransform的宽度和高度
  • unity3D 动态导入FBX、obj模型
  • UL标签的padding与margin默认值
  • 一个让img居中居左居右的方法
  • 谷歌 CardBoard Unity开发基础
  • Unity使用Face++
  • Processing 用图片填充形状
  • Unity结合讯飞语音在线识别
  • Arduino控制L298N
  • Unity Mesh初探
  • Processing 中文字体
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android系统模拟器绘制实现概述
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • JavaScript类型识别
  • Java应用性能调优
  • Linux链接文件
  • MySQL的数据类型
  • SpiderData 2019年2月16日 DApp数据排行榜
  • use Google search engine
  • 基于axios的vue插件,让http请求更简单
  • 一道面试题引发的“血案”
  • 移动端 h5开发相关内容总结(三)
  • 源码安装memcached和php memcache扩展
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​水经微图Web1.5.0版即将上线
  • #pragma data_seg 共享数据区(转)
  • (0)Nginx 功能特性
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (poj1.3.2)1791(构造法模拟)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (笔试题)合法字符串
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (十八)SpringBoot之发送QQ邮件
  • (转)程序员技术练级攻略
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .Net Redis的秒杀Dome和异步执行
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 中的轻量级线程安全
  • .NET开发不可不知、不可不用的辅助类(一)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /etc/fstab 只读无法修改的解决办法
  • @angular/cli项目构建--Dynamic.Form
  • @Repository 注解
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解