日期:2014-05-20  浏览次数:20758 次

冒泡排序问题:求指出错误和解决办法!!!
冒泡排序问题:编译没出现问题,调试中出现如图片的提示。求指出错误和解决办法!!!

public class BubbleSortArray
{
public  void bubbleSort(int array[])
{
for(int i=0;i<array.length-1;i++)
{
for(int j=0;j<array.length-i-1;j++)
{
if(array[j]>array[j+1])
{
int tempe=array[j];
array[j]=array[j+1];
array[j+1]=tempe;
}
}
/*打印每次循环排序后数组元素*/
System.out.println("第"+(i+1)+"趟排序");
for(int k=0;i<array.length-1;k++)
{
System.out.print(array[k]+" ");
}
System.out.println();
}
}
public static void  main(String[]args)
{
int array[]=new int[]{9,4,3,5,7};
BubbleSortArray test=new BubbleSortArray();
test.bubbleSort(array);
}
}
Java

------解决方案--------------------
for(int j=0;j<array.length-i-1;j++)
改成for(int j=i+1;j<array.length;j++)

------解决方案--------------------
for(int i=0;i<array.length-1;i++)
 {
 for(int j=i+1;j<array.length;j++)
 {
 if(array[i]>array[j])
 {
 int tempe=array[i];
 array[i]=array[j];
 array[j]=tempe;
 }
 }
------解决方案--------------------
快速排序算法  http://blog.csdn.net/aalansehaiyang52/article/details/8392934
------解决方案--------------------
不知道楼主修改好了没
public class BubbleSortArray {

public void bubbleSort(int array[]) {
for(int i=0;i<array.length;i++) {     
for(int j=0;j<i;j++) {
if(array[j]>array[j+1]){
int tempe=array[j];
array[j]=array[j+1];
array[j+1]=tempe;
}
}
//打印每次循环排序后数组元素
System.out.println("第"+(i+1)+"趟排序");
for(int k=0;k<array.length;k++) {
System.out.print(array[k] +" ");
}
System.out.println();
}
}

public static void  main(String[]args) {
int array[]=new int[]{9,4,3,5,7};
BubbleSortArray test=new BubbleSortArray();
test.bubbleSort(array);
}
}
楼主大概第四行的第五行还有第14行for循环里边参数k<array.length
------解决方案--------------------
package com.myclass;

public class BubbleSortArray {

public void bubbleSort(int array[]) {
int j = 0;
for (int i = 0; i < array.length; i++) {
for ( j =i+1; j < array.length; j++) {
if (array[i] > array[j]) {
int tempe = array[i];
array[i] = array[j];
array[j] = tempe;
}
}
/* 打印每次循环排序后数组元素 */
System.out.print("第" + (i + 1) + "趟排序:");
for (int k = 0; k < array.length ; k++) {
System.out.print(array[k] + " ");
}
System.out.println();
}
}

public static void main(String[] args) {
int array[] = new int[] { 9, 4, 3, 5, 7 };