数组倒置的递归算法 不知道哪出错了

问题描述

数组倒置的递归算法 不知道哪出错了

public class ReverseArray {
public static void main(String[] args) {
//定义数组
int a[] = {2,3,4,5,6};

    reverse(a,0,a.length-1);
    //遍历输出
    for(int i = 0;i < a.length;i++) {
        System.out.print(a[i]);
    }
}
//做递归
public static void reverse(int a[],int i,int j) {
    if(j > i) {
        Swap(a,a[i],a[j]);
        reverse(a,i+1,j-1);
    }
}
//数组中两个数交换
private static void Swap(int a[],int l,int k) {
    // TODO Auto-generated method stub
        int temp = a[l];
        a[l] = a[k];
        a[k] = temp;

}

}

输出 数组越界 望大家教教

解决方案

Swap 的第二和第三个参数,需要下标,但上面代码中传入的是成员,这样会导致访问越界。

解决方案二:

//做递归** 应该是按下标啊,也不是 ,a[i],a[j]**。
public static void reverse(int a[],int i,int j) {
if(j > i) {
Swap(a,a[i],a[j]);
reverse(a,i+1,j-1);
}
}

时间: 2024-11-01 21:32:50

数组倒置的递归算法 不知道哪出错了的相关文章

递归法将一个数字倒置(如:12345→54321)代码不知道哪里出错了

问题描述 递归法将一个数字倒置(如:12345→54321)代码不知道哪里出错了 public class Recursion { public static int len(int n){ int j=0; while(n>0) { j++; n=n/10; } return j; } public static int f(int n,int k){ int i,t=n%10; if(n<10) { k=n; return k; } else{ for(i=0;i<len(n);i+

java 运算-小白求助,我想实现如下功能,可是代码不知道哪出错了

问题描述 小白求助,我想实现如下功能,可是代码不知道哪出错了 public boolean panduanNullCondition(XSSFRow from, Properties source) { boolean N = true; boolean Y = true; ArrayList<Boolean> al = new ArrayList<Boolean>(); ArrayList<Boolean> Al = new ArrayList<Boolean&

typedef-凸包问题,但是不知道哪里出错了

问题描述 凸包问题,但是不知道哪里出错了 代码部分: #include #include #include #include using namespace std; #define MaxNode 1000 int stack[MaxNode]; int top; struct POINT { int x; int y; }; struct POINT point[MaxNode]; void swap(struct POINT point[], int m, int n){//点之间的数据交

js-JS中用getJSON访问一个JSON文件,不知道哪里出错了,能帮忙看看吗

问题描述 JS中用getJSON访问一个JSON文件,不知道哪里出错了,能帮忙看看吗 <!DOCTYPE html> <html> <head> <title>联系人</title> <script src="C:/Users/dell/Desktop/me/jquery/jquery.js" type="text/javascript"></script> </head>

android-安卓:我想数据库里面存储数据,但是确定之后显示我活动崩溃了,真不知道哪里出错了

问题描述 安卓:我想数据库里面存储数据,但是确定之后显示我活动崩溃了,真不知道哪里出错了 首先是我的数据库类: 然后是我的存储代码: 最后是LOG: 请各位大神帮我看看抽时间,小弟我刚接触数据库,听说挺重要的,一定要弄会啊 解决方案 楼主要养成好习惯,还有空指针是最容易犯的错误,要学会如何排查,加油!本地数据库不难 解决方案二: http://www.cnblogs.com/Excellent/archive/2011/11/19/2254888.html 解决方案三: 对象没有实例化,Book

c语言-请高手看一段C程序代码不知道哪里出错了

问题描述 请高手看一段C程序代码不知道哪里出错了 解决方案 另外printf你又拼错了. 解决方案二: 第14行 应为printf 解决方案三: 你的那个所谓的山寨编译器,也不知道有没有windows.h,估计没有. 建议你使用VC++ 解决方案四: 这本书其实我也看过,作者自己做了一个所谓的开发环境,其实用的是GNU C++,它并不包含windows的api函数的头和库. 解决方案五: 出错信息呢,贴出来呗 解决方案六: 你第14行的 printf 写错了 解决方案七: 第14行的printf

一段MATLAB程序运行不出来,不知道哪里出错了,跪求高手解答

问题描述 一段MATLAB程序运行不出来,不知道哪里出错了,跪求高手解答 %%%%%从o点出发达到目的地 function [chengyong,shuru,wq1,wq2]=gengxin(pfangan,guanxi,tm,chengyong,kchy) %%%若选择的为1-2,选择可供使用的方案(尽量满装) tf=find(pfangan(:,1)<=kchy(1,1)&pfangan(:,2)<=kchy(1,2)); if length(tf)>0 %%%方案存在(可以

c#-C#连接数据库的不知道哪个出错了

问题描述 C#连接数据库的不知道哪个出错了 数据库代码是 using (SqlConnection conn = new SqlConnection("Data Source=180.213.92.109; Initial Catalog=MyTest;User ID=sa;Password=123123")) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = "I

关于拖入文本的问题 、那位高手要是有空的话帮我看看吧!不知道哪里出错了

问题描述 我现在有两个ListBox控件我想把我选的值拖到另外一个ListBox里面我自己写了一段代码不知那里有问题?望高手帮小弟看看privatevoidlistBox1_MouseDown(objectsender,MouseEventArgse)//文本源{for(inti=0;i<listBox1.Items.Count;i++)if(listBox1.GetSelected(i))listBox1.DoDragDrop(listBox1.Items[i],DragDropEffects