java中数组的四种排序

这篇具有很好参考价值的文章主要介绍了java中数组的四种排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.数组

1.1数组的基本概念

数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量/12713827)。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
java数组排序,java,java,算法,数据结构

  public static void main(String[] args) {
		double[] ds = new double[3]; 
		ds[2] 
		//String有length方法.length(),Arrays有length属性.length 
		System.out.println(ds.length);//3 
		System.out.println(ds[1]); //0.0 //声明字符串数组,并直接初始化。3个元素 
		String[] ss = new String[]{"java", "hello", "mysql"}; //声明int型的数组,长度为3,并初始化全部数据为0 
		int[] a = new int[3]; // 0 1 2 三个 0 
		a[1] = 100; System.out.println(a[0]);//0 
		System.out.println(a[1]);//100 
		System.out.println(a[2]);//0 //a[3] = 20; 错误的,数组在java长度是固定 
		//下边行是有异常的, 
		System.out.println(a[3]);//数组下标是0 1 2 没有3
	}

1.2 声明数组

java数组排序,java,java,算法,数据结构

public class Arr1 { 
	public static void main(String[] args) { 
		int[] nums = {1, 2, 3}; 
		System.out.println(nums[2]); 
} 
} 

1.3内存模式

java数组排序,java,java,算法,数据结构

java数组排序,java,java,算法,数据结构
java数组排序,java,java,算法,数据结构

1.4遍历数组

	int[] a = new int[]{1, 20, 300};
	System.out.println(a.length); //数组对象的属性,返回一个int数字,代表当前数组的元素个数
	System.out.println(a[2]);
	     //遍历一
        for(var i : a){   
            System.out.println(i);
        }
         // 遍历二
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }
        //倒序遍历            
        for (int i = ls.length - 1; i >= 0; i--) {     
            System.out.println(ls[i]);
        }
	        //遍历四 java8 lambda 表达式遍历方式
	       Arrays.stream(a).forEach(System.out::println);

2.排序

2.1乱序,升降序

public class ArrSort3 { 
     public static void main(String[] args) {
          var ss = new String[]{"java", "python", "c", "php", "go", "ruby", "javascript"};  
	     //未排序 
         System.out.println(Arrays.toString(ss)); 
	     //升序 
	     Arrays.sort(ss); 
	     System.out.println(Arrays.toString(ss)); 
	     //降序
	     Arrays.sort(ss, Comparator.reverseOrder());   
	     System.out.println(Arrays.toString(ss));
	     //乱序 
	     Arrays.sort(ss, (a, b) -> Math.random() > .5 ? 1 : -1); 
	     System.out.println(Arrays.toString(ss)); 
       } 
       }

2.2冒泡排序

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。文章来源地址https://www.toymoban.com/news/detail-613508.html

public static void main(String[] args) {
        //01 声明数组
        int[] nums = new int[10];

        //02 数组元素赋值
        Random rand = new Random();
        for (int i = 0; i < nums.length; i++) nums[i] = rand.nextInt(1, 101);

        //03 排序前输出,直接使用Arrays.toString(nums);
        System.out.println("排序前:" + Arrays.toString(nums));

        //04排序算法(冒泡排序)
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = 0; j < nums.length - 1; j++) {
                if (nums[j] < nums[j + 1]) {  // > 换为升序  < 换为降序
                    int a = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = a;
                }
            }
        }

        //05 排序输出
        System.out.println("排升序后:" + Arrays.toString(nums));

       //04排序算法(冒泡排序)
        for (int i = 0; i < nums.length - 1; i++) {
            for (int j = 0; j < nums.length - 1; j++) {
                if (nums[j] > nums[j + 1]) {  // > 换为升序  > 换为降序
                    int a = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = a;
                }
            }
        }
        //05 排序输出
        System.out.println("排降序后:" + Arrays.toString(nums));

   }
 }

到了这里,关于java中数组的四种排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive的四种排序方法

    hive排序方法,hive的排序方式 hive有四种排序方法: ORDER BY 、SORT BY 、DISTRIBUTE BY 、CLUSTER BY 0. 测试数据准备 uuid dept salary 1001 研发部 16000 1002 市场部 17000 1003 销售部 11000 1004 研发部 15000 1005 销售部 12000 1006 研发部 21000 1007 产品部 16000 1008 研发部 18000 1009 市场部 17000 1010 产品部 16

    2024年02月02日
    浏览(42)
  • 算法 数据结构 递归插入排序 java插入排序 递归求解插入排序算法 如何用递归写插入排序 插入排序动图 插入排序优化 数据结构(十)

    1. 插入排序(insertion-sort):                                           是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入     算法稳定性:                  

    2024年02月09日
    浏览(53)
  • 【数据结构】用Java实现七大排序算法

    目录 🌷1. 排序的概念及引用 1.1 排序的概念 1.2 衡量指标 1.2 十个排序算法  1.3 十个排序性能对比 🌷2. 冒泡排序 2.1 算法描述 2.2 动图 ⭐️代码优化 🌷3. 选择排序 3.1 算法描述 3.2 动图  3.3 代码 🌷4. 插入排序 4.1 算法描述 4.2 动图  4.3 代码 🌷5 希尔排序 5.1 描述 5.2 动图  

    2023年04月23日
    浏览(49)
  • List按指定规则排序的四种方法

    使用Collections.sort(list)可对一个List对象进行升序排序,但如果要按某种指定规则进行排序,可使用如下四种方法: 1. 使用list.sort(comparator)方法 List的sort()方法中可以传入一个自定义Comparator比较器。实现Comparator接口, 重写compare方法 来定义排序规则。 如果compare()方法返回负整

    2024年02月05日
    浏览(45)
  • 【算法与数据结构】Java实现查找与排序

    也叫做折半查找,属于有序查找算法。 前提条件 :数组数据必须有序,从小到大,或者从大到小都是可以的。 如果是无序的,也可以先进行排序。 但是排序之后,会改变原有数据的顺序,查找出来元素位置跟原来的元素可能是不一样的,所以排序之后再查找只能判断当前数

    2024年01月19日
    浏览(46)
  • 数据结构与算法中的七大排序(Java实现)

    目录 一、直接插入排序 二、希尔排序 三、直接选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序               定义i下标之前的元素全部已经有序 ,遍历一遍要排序的数组,把i下标前的元素全部进行排序,当遍历玩这个数组后,就已经排好序了。        

    2024年02月06日
    浏览(55)
  • 【C/C++】统计数组各元素个数的四种方法

     问题:给定一个数组,输出各元素出现的次数。 目录 法一:逐个统计 法二:用数组以值代址 法三:先排序,再进行统计 法四:利用哈希表进行统计  思路: 数组第一个数为目标,遍历数组进行统计,统计后的数据替换成0(表示已删除),统计后输出数目。 优点:呃。。

    2024年01月21日
    浏览(36)
  • 【Java数据结构与算法】Day2-高级排序(希尔、归并、快速、计数)

    ✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Java数据结构与算法】 🥭本文内容:Java数据结构与算法中的比较高级的排序,希尔排序、归并排序、快速排序、计数排序

    2024年02月02日
    浏览(62)
  • C语言指向二维数组的四种指针以及动态分配二维数组的五种方式

    当二维数组作为结构成员或返回值时,通常需要根据用户传递的参数来决定二维数组的大小,此时就需要动态分配二维数组。 如果现在有一个二维数组 a[3][2] ,那么将有以下几种指针可以指向它: 方式一 方式二: 在应用场景中通常采用以下三种方式动态分配二维数组,因为

    2024年02月04日
    浏览(55)
  • java数据结构与算法刷题-----LeetCode209. 长度最小的子数组

    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完): https://blog.csdn.net/grd_java/article/details/123063846 解题思路 代码:时间复杂度O(n).空间复杂度O(1)

    2024年01月21日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包