黑马程序员技术交流社区
标题:
冒泡排序中出现的错误
[打印本页]
作者:
ぺsimon☆
时间:
2013-4-11 15:42
标题:
冒泡排序中出现的错误
本帖最后由 ぺsimon☆ 于 2013-4-11 16:46 编辑
遇到问题了,请各位兄弟看看谢谢
代码:
/**
这是一个冒泡排序
思路
冒泡排序是前面的数跟后面的数相比,大的就放在后面,每个元素都依次的和后面的
数想比较,到最后数组就按照从小到大进行排序了
步骤:
1定义数组int[]:arr
2定义一个函数功能
返回值类型为void
未知内容是数组 参数类型是int[]
3定义临时变量temp 初始化值为数组第一个元素
4定义两个for循环
外循环次数是arr.length-1
内循环次数:arr.length-1
条件:如果前面的数大于后面的数,把他们的位置调换,否则位置不变
*/
class ArrayTree2
{
public static void main(String[] args)
{
int[] arr={1,2,3,11,66,8,};
//排序前打印
printArray(arr);
//排序
array(arr);
//排序后打印
printArray(arr);
public static void array(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=0;y<arr.length-x-1;y++)
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.print(arr[x]+"]");
}
}
}
}
错误:
E:\Java\jdk1.6.0_23\experience_heima\04>ja
ArrayTree2.java:30: 非法的表达式开始
public static void array(int[] arr
^
ArrayTree2.java:30: 非法的表达式开始
public static void array(int[] arr
^
ArrayTree2.java:30: 需要 ';'
public static void array(int[] arr
^
ArrayTree2.java:30: 需要 ".class"
public static void array(int[] arr
^
ArrayTree2.java:30: 需要 ';'
public static void array(int[] arr
ArrayTree2.java:46: 非法的表达式开始
public static void printArray(int[
^
ArrayTree2.java:46: 非法的表达式开始
public static void printArray(int[
^
ArrayTree2.java:46: 需要 ';'
public static void printArray(int[
^
ArrayTree2.java:46: 需要 ".class"
public static void printArray(int[
ArrayTree2.java:46: 需要 ';'
public static void printArray(int[
10 错误
E:\Java\jdk1.6.0_23\experience_heima\04>
作者:
李大伟
时间:
2013-4-11 16:01
本帖最后由 李大伟 于 2013-4-11 16:03 编辑
你参考参考我这个 代码 呵呵
public class ArrayTest2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr=new int[]{7,1000,5,1,6,4,1,100005,8,9,355000};
printArray(arr);
bubbleSort(arr);
printArray(arr);
}
//冒泡排序
public static void bubbleSort(int[] arr){
for(int x=0; x<arr.length; x++){
for(int y=0; y<arr.length-x-1;y++){//-x 为了减小比较次数, -1为了避免角标越界
if(arr[y]>arr[y+1]){
swap(arr,y,y+1);
//int temp =arr[y];
//arr[y]=arr[y+1];
//arr[y+1]=temp;
}
}
}
}
//选择排序
public static void selectSort(int[] arr){
for(int x=0; x<arr.length-1; x++){
for(int y=x+1;y<arr.length;y++){
if(arr[x]>arr[y]){
swap(arr,x,y);
//int temp = arr[x];
//arr[x] = arr[y];
//arr[y] = temp;
}
}
}
}
public static void printArray(int[] arr){
System.out.print("arr=[");
for(int x=0; x<arr.length;x++){
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
public static void swap(int[] arr,int x,int y){
int temp = arr[x];
arr[x]= arr[y];
arr[y]=temp;
}
}
复制代码
作者:
李大伟
时间:
2013-4-11 16:20
本帖最后由 李大伟 于 2013-4-11 16:24 编辑
我刚才运行了下 看了看 你就是把main函数的括号弄到下边去了,我已经给你标出来了,
你这个应该按标准格式,这样的话 清晰好找,另外的话 命名也要有规则,注意看老师视频里边的命名规则
下边是改完以后的代码
class ArrayTree3
{
public static void main(String[] args)
{
int[] arr={1,2,3,11,66,8,};
//排序前打印
printArray(arr);
//排序
array(arr);
//排序后打印
printArray(arr);
} //错误1 main函数的括号问题
public static void array(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
{
for(int y=0;y<arr.length-x-1;y++)
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0;x<arr.length;x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.print(arr[x]+"]");
}
}
//错误2 main函数的括号括到这里了,
}
复制代码
作者:
ぺsimon☆
时间:
2013-4-11 16:43
李大伟 发表于 2013-4-11 16:20
我刚才运行了下 看了看 你就是把main函数的括号弄到下边去了,我已经给你标出来了,
你这个应该按标准格式 ...
哦,刚刚试了一下,程序可以了,太感谢了我找了很久没看出什么问题呵呵
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2