首页 > Java中数组常见的几种排序方法!

Java中数组常见的几种排序方法!

  数组的定义:

     int[] arr = new int[5];int[] arr1 = {1,2,3,4,5};long[] arr2 = new long[6];String[] strs = new String[5];Person[] ps = new Person[5];

  数组的操作:

     int[] arr = {45, 34, 53, 43};Arrays.sort(arr);System.out.println(Arrays.toString(arr));// 二分搜索法(使用之前需要先排序)int i = Arrays.binarySearch(arr, 34);System.out.println(i);int[] newArr = Arrays.copyOf(arr, 7);int[] newArr1 = Arrays.copyOfRange(arr, 1, 3);System.out.println(Arrays.toString(newArr));System.out.println(Arrays.toString(newArr1));int j = Arrays.binarySearch(arr, 1, 3, 34);System.out.println(j);

  冒泡排序:

     int[] arr = {23,12,48,56,45};

     int
temp = -1;for(int i=0;i) {for(int j=i+1;j) {if(arr[i]>arr[j]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}System.out.println(Arrays.toString(arr));

  直接选择排序:

    int[] arr = {23,12,48,56,45};
    for(int i=0;i) {int tem = i;for(int j=i;j) {if(arr[j] < arr[tem]) {tem = j;}}int temp1 = arr[i];arr[i] = arr[tem];arr[tem] = temp1;}System.out.println(Arrays.toString(arr));

  反转排序:  

    int[] arr = {23,12,48,56,45};
    for(int i=0;i) {int temp = arr[i];arr[i] = arr[arr.length-i-1];arr[arr.length-i-1] = temp;}System.out.println(Arrays.toString(arr))

 

转载于:https://www.cnblogs.com/bekeyuan123/p/6891875.html

更多相关:

  • 题目:最小的k个数 入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1: 输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1] 示例 2: 输入:arr = [0,1,2,1], k = 1 输出:[0...

  • //自定义深度复制对象or数组的递归方法---------------------------------------- let copyObjOrArr = o => {let isArray = o instanceof Array;let isObject = o instanceof Object;if (!isObject)...

  • var array = {/* 数组求和*/sum: arr => eval(arr.join("+")),/* 判断一个数组(支持一个字符串)里面的是否有任何一个元素被包含在了某个字符串里面 */isStringContain(str, arr) {Array.isArray(arr) || (arr = [arr]);for (v...

  • 经过调研发现,对任意无序整数数组,快速排序有两种实现方法,这里简单阐述下思路: 思路一:随意选择一个基准元,一般选择数组的起始元或末尾元,Weiss这本书上特意搞了个算法来选择基准元,……,总之就是基准元的选择要尽量随机。选定基准元之后,比如选择数组起始元为基准元,从数组右边开始,向左边遍历,遇到比基准元大的跳过,直至遇到比基准元小...

  • 下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法: 插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序。整理出来以作备忘,不足之处,欢迎大家批评指正!其中计数排序分别给出了不稳定和稳定两种排序算法,测试时,使用随机生成大数组和随机手动输入的方法来测试。...

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • 关于Stream和Collectors的用法,这应该是总结的最全的文章了,大家可以收藏一下。一:简介java.util.Stream 表示能应用在一组元素上一次执行的操作序列。Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样就可以将多个操作依次串起来。Stream...

  • 枚举类型测试代码: public class EnumTest {public static void main(String[] args) {Size s = Size.SMALL;Size t = Size.LARGE;// s和t引用同一个对象?System.out.println(s == t); //// 是原始数据类...

  • 程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计算等功能的函数)和一个主函数Text类 (通过输入的数字选项进行功能的实现,因为退出系统代码量极少,所以在主函数中实现此功能) 程序源...

  • package wjf; import java.util.Scanner; public class wjf1{public static void main(String[] args){ //主方法Scanner scan=new Scanner(System.in); System.out.p...

  • 日期:2018.10.07 星期五 博客期:014   一、Java中的位运算 代码如下: 1 package Morts107; 2 3 public class Test107 { 4 public static void main(String[] args) { 5 int z; 6...