黑马程序员技术交流社区
标题:
有关冒泡排序算法程序问题
[打印本页]
作者:
许庭洲
时间:
2012-4-28 13:12
标题:
有关冒泡排序算法程序问题
请求高手,下面冒泡排序主要程序,该程序运行通不过,请哪位高手帮忙指正!
int [] array = new int;
int temp = 0 ;
for (int i = 0 ; i < array.Length; i++)
{
for (int j = i + 1 ; j < array.Length-1 ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
作者:
郭耀强
时间:
2012-4-28 13:59
int[] math = { 1, 7, 81, 1, 87, 10 };
int hold = 0, j;
for (int i = 0; i < math.Length; i++)
{
for (j = 0; j < math.Length - i - 1; j++)
{
if (math[j] > math[j + 1])
{
hold = math[j];
math[j] = math[j + 1];
math[j + 1] = hold;
}
}
}
作者:
郭耀强
时间:
2012-4-28 14:00
你实例话一组数字啊,你的“int [] array = new int”不对啊,要不你这样写啊
int [] array = new int[]{};
或则int [] array = new int[10];
作者:
肖腾宇
时间:
2012-4-28 14:04
定义数组出错了
作者:
黑马李亮
时间:
2012-4-28 15:03
int[] sort(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr.Length - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
return arr;
}
}
作者:
陈世伟
时间:
2012-4-28 16:59
int[] array = new int[]{10,15,22,50,46,85};
int temp = 0 ;
for (int i = 0 ; i < array.Length; i++)
{
for (int j = 0; j < array.Length-1-i ; j++)
{
if (array[j] < array[j+1])
{
temp = array[j] ;
array[j] = array[j+1] ;
array[j+1] = temp ;
}
}
}
for (int a = 0; a < 6; a++)
{
Console.WriteLine(array[a]);
}
Console.ReadKey();
作者:
过客
时间:
2012-4-28 17:22
数组定义错了,而且数组没有值,第二层for循环的条件应该为(arr.Length - i - 1)。
作者:
黄燕京
时间:
2012-4-28 19:42
int [] array = new int; 不对,不能这样定义吧
作者:
张博
时间:
2012-4-30 22:48
数组定义的不对啊,int[] name={2,12,4,23,4,23,6,6,7,54}
作者:
错,谁的错丶
时间:
2012-4-30 23:11
int [] array = new int;
数组定义错了。
冒泡排序的两层循环:
int temp = 0;
for(int i =0;i<array.Lenght-1; i++)
{
for(int j =0;j<array.Lenght--1-i; j++)
{
if(array[j]<array[j+1])
{
int temp = array[j];
array[j] = array[j+1];
array[j+!] = temp;
}
}
}
请参照一下。
作者:
黑马王刚
时间:
2012-5-1 00:53
数组定义出错,int [] array=new int[];
作者:
i蓝蓝蓝天
时间:
2012-5-1 22:02
仔细看了下仁兄的代码,发现仁兄连冒泡算法的基本思想都没搞清,数组也确实是定义错了,而且看仁兄在for循环里面写的,就拿的arr[i]和arr[j]相比,这个不是选择排序的基本思想嘛。冒泡排序的基本思想是相邻的两个元素进行比较,用i控制的是遍历的次数,每次遍历完之后所要求的最值往后沉,所以下次再进行遍历的时候,最后一个元素就可以不要在参与到比较里面来了,因此j的条件有一个-i的值,因为你遍历了几次那么就有几个数可以不参与比较了,因为是相邻的值进行比较所以j的值需要减1,因为是拿arr[j]和arr[j+1]进行比较,所以j的条件需减1要不然就会有数组越界的错误。在此讲的可能不是很清楚,希望楼主再去看下相关视频。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2