`

java-递归判断数组是否升序

 
阅读更多

public class IsAccendListRecursive {

	/*递归判断数组是否升序
	 * if a Integer array is ascending,return true
	 * use recursion
	 */
	
	public static void main(String[] args){
		IsAccendListRecursive is=new IsAccendListRecursive();
		int[][] a={
				{1,2,3,4,5,6,7},
				{8,2,3,4,5,6,7},
				{1,2,3,8,5,6,7},
				{1,2,3,4,5,6,0},
		};
		for(int[] b:a){
			is.isAccendListRecursive3(b,0,b.length-1);
			System.out.println(is.result);
		}
	}
	
	
	
	//wrong answer
	public boolean isAccendListRecursive(int[] a,int s,int e){
		boolean re=false;
		if(s==e){		//one element
			re=true;
		}else if(s==e-1){//two elements
			re=a[s]<a[e];
		}else{
			re=isAccendListRecursive(a,s+1,e);
		}
		return re;
	}
	
	//look at this--(a[s]<a[s+1])--is it recursion any more?
	public boolean isAccendListRecursive2(int[] a,int s,int e){
		boolean re=false;
		if(s==e){
			re=true;
		}else{
			re=a[s]<a[s+1]&&isAccendListRecursive2(a,s+1,e);
		}
		return re;
	}
	
	private boolean result;
	//return the min element of the array that has been checked
	public int isAccendListRecursive3(int[] a,int s,int e){
		if(s==e){
			result=true;
		}else{
			int min=isAccendListRecursive3(a,s+1,e);
			result=result&&(a[s]<min);
		}
		return a[s];
	}
}

分享到:
评论

相关推荐

    java 数组递增排序

    数组的递增排序,也称为升序排序,是指将数组中的元素按照从小到大的顺序重新排列。在本篇文章中,我们将深入探讨Java中实现数组递增排序的方法,以及相关的编程知识点。 首先,最常见的数组排序算法是冒泡排序...

    js代码-已知如下数组: var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; 编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组

    最后,为了使数组升序排列,我们可以使用`Array.prototype.sort()`方法。这个方法接受一个比较函数作为参数,我们可以通过比较两个元素的大小来确定它们在排序后的相对位置。 ```javascript function sortArray(arr...

    java递归的排序和查找,数组栈.....

    在提供的压缩包文件中,"递归升序和查找"可能包含了实现这些概念的示例代码。这可能包括一个界面,让用户输入数据,然后通过递归进行排序(比如使用上述的归并排序或快速排序),同时提供查找功能,可能使用了二分...

    使用快速排序法对一维数组进行排序

    描述中的程序实现了快速排序法,可能是用一种编程语言如C++、Java或Python编写的,用于对一维数组进行排序。这种程序的实现一般包括上述的三个主要步骤,并可能包含优化措施,例如处理小数组时改用插入排序,或者...

    Java-master_排序_

    5. **快速排序**:通过“分而治之”的策略,选取基准元素进行划分,然后对子数组递归排序,平均时间复杂度为O(n log n),但在最坏情况下为O(n^2)。 6. **归并排序**:采用分治法,将数组分为两半分别排序,然后合并...

    Java各种排序算法(含代码)

    选取一个基准值,将数组分为两部分,一部分所有元素都小于基准,另一部分所有元素都大于基准,然后递归地对两部分进行快速排序。平均时间复杂度为O(n log n),在最坏情况下(已排序或逆序数组)为O(n^2),但实际应用...

    全排列-非递归算法

    全排列是一种经典的算法问题,它涉及在给定的有限序列中找出所有可能的元素排列方式。...代码可能涉及到循环、条件判断、数组操作等基本编程概念,通过学习和实践,可以提升对全排列算法的理解和应用能力。

    java代码-数组排序封装类

    在Java编程语言中,数组是存储相同类型元素的固定大小的序列。为了处理和操作这些数据,有时我们需要对数组进行排序。"java代码-数组排序封装类"可能是指一个自定义的Java类,该类提供了对数组进行排序的功能,封装...

    java-leetcode题解之第148题排序链表.zip

    在Java编程领域,LeetCode是一个非常受欢迎的在线平台,它提供了大量的编程题目,旨在帮助开发者提升算法和数据结构技能。本资源"java-leetcode题解之第148题排序链表.zip"聚焦于LeetCode的第148题,即“排序链表”...

    Java5.0数组排序

    虽然Java 5.0的`Arrays.sort()`方法不能直接用于多维数组,但可以通过递归或循环的方式,对二维数组的每一行进行单独排序。 四、`Collections.sort()`与`List` 除了`Arrays.sort()`,Java 5.0的`Collections.sort...

    java小练习,Java练习小程序,Java必用

    - 可以使用循环结构访问数组的每个元素,并判断它是否位于主对角线上。 30. **数组逆序**: - 将一个数组中的元素顺序反转。 - 可以使用双指针技巧实现数组的逆序。 31. **简单操作**: - 实现一个简单的加法...

    《数据结构Java版》习题解答..doc

    - **判断数组元素是否已按升序排序**:这是基本的数组操作,可以使用双指针或者排序算法的特性来检查。 - **递归算法求两个整数的最大公因数**:理解递归原理,实现欧几里得算法(辗转相除法)。 3. **线性表** ...

    将升序数组转化为平衡二叉搜索树

    ### 将升序数组转化为平衡二叉搜索树 #### 知识点概述 在计算机科学领域,二叉搜索树(Binary Search Tree, BST)是一种非常重要的数据结构,它能够有效地支持插入、删除、查找等操作。而平衡二叉搜索树(AVL树、红黑...

    java笔试算法题及答案.doc

    首先定义了一个`isLetter()`方法来判断字符是否为字母,然后`lengths()`方法计算字符串的实际长度,考虑到非字母字符可能占用两个字节。`subString()`方法使用了`getBytes()`和`System.arraycopy()`来截取字节数组,...

    JAVA练习题(50题)

    - **实现思路**:通过选择排序算法,将一个数组按升序或降序排序。 #### 练习题30:矩阵主对角线元素之和 - **知识点**: - 矩阵的操作。 - 主对角线元素的概念。 - 循环结构的应用。 - **实现思路**:使用循环...

    Java练习题,实用于Java大部分人群

    - 对于每个数字,使用素数判断的方法来确定是否为素数。 #### 28. 十个数字排序 - **知识点**:对十个随机生成的数字进行排序。 - **实现方法**: - 生成十个随机数。 - 使用排序算法(如冒泡排序、插入排序等)...

    java面试题-leetcode题解之第33题搜索旋转排序数组.zip

    1. **旋转排序数组的理解:** 数组原本是有序的,但由于一次旋转操作,使得数组分为两部分,一部分保持升序,另一部分也是升序,但顺序相反。 2. **二分查找:** 通常解决搜索问题,我们可以使用二分查找算法,它的...

    Java语言程序设计实验四 方法及数组实验报告.docx

    ### Java语言程序设计实验四:方法及数组实验报告 #### 实验目的 1. **掌握数组的定义和使用方法:** - 学习如何在Java中声明、初始化数组。 - 掌握如何通过索引访问数组中的元素。 - 了解数组长度的固定特性...

    java 二分法查找案例与数组排序案例.docx

    ### Java 二分法查找与数组排序案例分析 #### 数组排序案例 在Java中,对数组进行排序是一项常见的操作,通常我们有两种排序方式:升序(从小到大)和降序(从大到小)。下面我们将分别介绍这两种排序方法的具体...

Global site tag (gtag.js) - Google Analytics