黑马程序员技术交流社区
标题:
在这个算法中if (array[j] < array[i])这块代码应该怎样理解?
[打印本页]
作者:
黑马—杨磊
时间:
2013-5-21 11:02
标题:
在这个算法中if (array[j] < array[i])这块代码应该怎样理解?
本帖最后由 黑马—杨磊 于 2013-5-21 13:25 编辑
int [] array = new int ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array
)
{
temp = array
;
array
= array[j] ;
array[j] = temp ;
}
}
}
作者:
shenge321
时间:
2013-5-21 11:07
应该是冒泡排序。数组array的当前元素与后一位元素比较大小。如果当前元素大于后一位元素,执行if里的程序块,将值大的元素挪到数组后面,值小的挪前面去。
作者:
郎吉祥
时间:
2013-5-21 11:12
本帖最后由 郎吉祥 于 2013-5-21 11:22 编辑
首先,他是一个嵌套循环。遍历索引,if (array[j] < array
)。array[j]表示内部当前次循环的那个数组元素,而array
在内部循环没有结束的时候,是不变的。表示,array[j]依次循环和array
比较,小的就交换位置。内部循环完了之后,i+1,再次执行内部循环。就这样直到循环完毕。
其实他不是冒泡排序吧。程序的意思,是从第I+1个元素开始每个数组元素和第i个元素比较,小的就放到第i个元素上。依次排序。感觉像是选择排序。
作者:
壹旪傾峸
时间:
2013-5-21 11:29
这个是选择排序 int [] array = new int [*] ; (这句是不是你写错了 ) 给你提点小建议 初学者应该多写注释,这点很重要的!
if (array[j] < array[i])这个就是数组array的当前元素与后一位元素比较大小 对不起了本来是给你画图解释的可是怎么上传不了图片、 希望对你有所帮助吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2