`
阅读更多

                                                 数组联想

首先既然讲到数组,那我们来讲讲,数组有什么优点呢?
  按照下标顺序或者直接指定的下标,访问读取的速度效率高。
 数组有什么缺点呢?
  内存空间在定义的时候就固定了,不能改变内存大小。
 数组是属于什么数据类型的?
  Java
   基本数据类型
   引用类型(对象类型,类类型)
   class,interface,abstract class,数组
  String [] array = new String[10];
  Student stu = new Student();
 数组有哪些属性和方法?
  数组只有一个唯一的属性length。
我们在刚刚学习编程语言时,不论是C,C++,还是java,最先接触的毕竟是数组,先不要管后面出现的链表,栈,队列,之所以选择数组,主要还是数组是这些以后的基础,而且在大学的学生基本都学过线性代数,它十分类似于矩阵,因此在两相结合起来,更利于理解,在平时代码编辑中,一般来说,只要我大概能估算出我做需要的内存,基本还是会采用数组。

在学习过程中,觉得比较容易犯错的还是一下几点:

二维数组举例:获取二维数组的总行数:数组名.length;
  获取二维数组的每一行的列数:数组名[行下标].length;
说到一维数组,大家都会想到历史上各种有名的排序方法,像冒泡排序,快速排序,希尔排序,插半排序等等,无非在效率,时间,稳定性下手,当然其中冒泡排序法虽然称为最为繁琐的排序方法但是确实新手上手最容易理解的,之后的快速排序是对冒泡的改进一下是用快速排序做的一维数组排序代码:

 

public class Array {
	public static void main(String args[]){
		Array zyy=new Array();
		int[] array=zyy.creatArray(50);
		display(array);//打印数组
		System.out.print("\n");
		quickSort(array,0,49);//快速排序0-49
		display(array);//打印数组
		
		
	}
	public int[] creatArray(int size){
		int[] array=new int[size];
		Random random=new Random();//初始化随机数
		//遍历赋值
		for(int i=0;i<array.length;i++){
			array[i]=random.nextInt(50);
			
			
		}
		return array;
	}
	public static void quickSort(int array[], int start, int end)
	{        int i,j;
	         i = start;
	         j = end;
	         if((array==null)||(array.length==0))
	             return;
	         while(i<j){
	             while(i<j&&array[i]<=array[j]){     //以数组start下标的数据为key,右侧扫描
	                 j--;
	             }
	             if(i<j){                   //右侧扫描,找出第一个比key小的,交换位置
	                 int temp = array[i];
	                 array[i] = array[j];
	                 array[j] = temp;
	             }
	              while(i<j&&array[i]<array[j]){    //左侧扫描(此时a[j]中存储着key值)
	                 i++;
	               }
	             if(i<j){                 //找出第一个比key大的,交换位置
	                 int temp = array[i];
	                 array[i] = array[j];
	                 array[j] = temp;
	             }
	        }
	        if(i-start>1){
	             //递归调用,把key前面的完成排序
	            quickSort(array,start,i-1);
	        }
	        if(end-i>1){
	            quickSort(array,i+1,end);    //递归调用,把key后面的完成排序
	        }
	}
	public static void display(int[] array){
		for(int i=0;i<array.length;i++){
			System.out.print(array[i]+"\t");
			
		}
		
	}

}

 

 出来的效果是这样,不过每次不同:

 

21 6 7 44 25 1 48 0 5 48 37 24 40 1 1 44 2 2 4 19 35 14 12 25 11 3 21 0 14 39 0 32 27 13 23 16 20 0 49 42 9 32 49 34 44 47 15 46 33 13 
0 0 0 0 1 1 1 2 2 3 4 5 6 7 9 11 12 13 13 14 14 15 16 19 20 21 21 23 24 25 25 27 32 32 33 34 35 37 39 40 42 44 44 44 46 47 48 48 49 49

 

之后就是二维数组,二维数组与一维数组在方法使用以及定义都是换汤不换药,有着异曲同工之妙

 

 

 

 

import java.util.Random;
public class Array2 {
	public static void main(String args[]){
		Array2 yy=new Array2();
		int[][]array=yy.creatArray(3, 3);
		yy.print(array);
		yy.bigSort(array);
		
		
	}
	public int[][] creatArray(int Row,int Column){
		int[][] array=new int[Row][Column];//实例化一个int[][]型的数组对象
		Random random=new Random();//实例化一个随机数列对象
		//遍历二维数组赋值
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array[i].length;j++){
				array[i][j]=random.nextInt(100);//将二维数组随机赋值为0-99的值
			}
		}
		return array;
		
	}
	public void bigSort(int array[][]){
		int max=array[0][0],m = 0,n=0;//设立max为第一行第一列个值,m,n记录行列数
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array[i].length;j++){
				if(max<array[i][j]){
					max=array[i][j];
					m=i;
					n=j;
				}
			}
		}
		System.out.print("\n最大的数是"+max+"\t出现的位置是"+m+"行"+n+"列");
	}
	public void print(int array[][]){
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array[i].length;j++){
			
			System.out.print(array[i][j]+"\t");
			if(j==array[i].length-1){
				System.out.print("\n");
			}
			}
		}
	}

}

 

结果:

60 73 24 
82 59 74 
41 20 39 

最大的数是82 出现的位置是1行0列

 

 

0
0
分享到:
评论

相关推荐

    C#实现对二维数组排序的方法

    总结来说,本文介绍的C#实现二维数组排序的方法,通过将二维数组转换为`DataTable`并利用其内置的排序功能,提供了一种灵活且高效的解决方案。这种方法不仅适用于各种数据类型,而且保持了原始数组的引用,使得排序...

    易语言自定义数据类型数组排序

    本话题聚焦于“易语言自定义数据类型数组排序”,将深入探讨如何在易语言中创建、操作自定义数据类型数组,并实现各种排序算法,如根据产地、类别和售价等属性进行排序。 自定义数据类型在易语言中允许我们定义包含...

    LabVIEW二维数组排序.rar

    总结来说,LabVIEW中的二维数组排序涉及理解二维数组的结构,掌握各种排序方法,包括按行、按列及自定义排序,以及处理数据类型转换和性能优化。熟练掌握这些技能将使你在LabVIEW编程中游刃有余,处理各种数据处理...

    易语言数组排序源码.zip

    在"易语言数组排序源码.zip"这个压缩包中,我们可以期待找到一些关于易语言如何实现数组排序的示例代码。数组排序是计算机科学中的基础操作,它在各种算法和数据处理中都有着广泛的应用。 数组排序通常涉及两种主要...

    c语言的基本算法 数组排序

    本篇内容将深入探讨C语言中的数组排序算法。 首先,数组排序是算法设计中常见的问题,它涉及到数组元素的重新排列,以达到特定的顺序,例如升序或降序。这里提到了两种基本的排序算法:筛选法(用于求素数)和选择...

    Matlab数组排序详解docx文档下载

    在MATLAB中,数组排序是数据处理和分析过程中的常见操作。`sort`函数是MATLAB提供的一种方便的工具,可以对各种类型的数组进行升序或降序排序。以下是对`sort`函数的详细说明: 1. **基本用法**: `B = sort(A)` ...

    易语言数组排序算法集合

    本资源“易语言数组排序算法集合”提供了多种常见的排序算法的源代码实现,对于学习易语言以及算法理解都有极大的帮助。下面将详细介绍其中提及的几种排序算法。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...

    文本数组排序模块测试程序

    在IT行业中,数组排序是一个非常基础且重要的概念,特别是在编程领域。数组是数据结构的一种,它存储一组相同类型的元素,并且这些元素可以通过索引进行访问。排序则是将数组中的元素按照特定规则(如升序或降序)...

    VB多维数组排序源码

    VB多维数组排序源码

    VB二维数组排序源码

    VB二维数组排序源码

    matlab数组排序方法.docx

    在 MATLAB 中,数组排序是一个非常常见的操作,尤其在数据分析和科学计算中。MATLAB 提供了多种内置函数来满足不同的排序需求。以下是一些主要的排序方法及其详细说明: 1. **sort 函数**: - `sort(A)`:对一维...

    任意数组排序

    任意数组排序 很经典经典 学习交流

    VB070-数组排序 源代码

    在编程领域,数组排序是一个非常基础且重要的概念,尤其在Visual Basic (VB)中,它在数据处理和算法实现上扮演着关键角色。本资源"VB070-数组排序 源代码"提供了一组关于如何在VB环境中对数组进行排序的源代码示例,...

    .net属性数组排序.rar

    在.NET框架中,属性数组排序是一项常见的操作,特别是在ASP.NET开发中。这涉及到对对象集合进行排序,这些对象具有特定的属性,我们希望通过这些属性值来确定集合中的顺序。本篇将深入探讨如何使用.NET Framework...

    数组排序知识代码(c#)

    在本文中,我们将深入探讨C#编程语言中的数组排序知识,并通过实际的代码示例来阐述这一主题。C#是一种广泛应用于开发Windows桌面应用、Web应用和服务端软件的强大语言,而数组作为C#中的基本数据结构,是进行数据...

    一维数组排序标程

    一维数组排序标程,绝对AC,时间复杂度O(n logn),解压密码:JYQJYQFUCKYOU

    易语言源码易语言自定义数据类型数组排序.rar

    易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义数据类型数组排序.rar 易语言源码易语言自定义...

    matlab数组排序matlab数组排序

    matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序matlab数组排序...

    排序函数(数字或字符串数组排序)

    为普通数组和对象数组排序,对象数组排序时,可指定排序所依据的对象属性,汉字将以汉语拼音为序。

    8086汇编语言数组排序

    找了好多地方没有找到,自己写一个汇编语言实现的数组排序。

Global site tag (gtag.js) - Google Analytics