黑马程序员技术交流社区
标题:
排序错误
[打印本页]
作者:
外面的世界
时间:
2013-8-27 15:45
标题:
排序错误
public class Test4 {
public static void selectSort(int[] arr){
for(int x=0;x<arr.length;y<arr.length-1;x++){
(
这句话提示错误,不知道哪里,各位大神看看
)
for(int y=1;y<arr.length;y++){
if(arr[x]<arr[y]){
int temp = arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
}
作者:
夜默
时间:
2013-8-27 16:01
for(int x=0,y=1;x<(arr.length-1)&&y<(arr.length-1);x++,y++){ 这么写本身就是错的,你在下面都对Y的循环条件语句
for(;y<arr.length;y++){
if(arr[x]<arr[y]){
int temp = arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
public static void selectSort(int[] arr){
for(int x=0;x<(arr.length-1);x++){ //双重循环这么写才是对的
for(int y=1;y<arr.length;y++){
if(arr[x]<arr[y]){
int temp = arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
作者:
.....淡定
时间:
2013-8-27 16:09
for循环里面只能由两个分号,你for循环里面三个分号不符合规则吧
选择排序的方式为:
public static void selectSort(int arr[])
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
swap(arr,i,j);
}
}
}
}
private static void swap(int[] arr, int i, int j) {
int tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
作者:
yinbolove576
时间:
2013-8-27 16:13
public class Test4 {
public static void selectSort(int[] arr){
for(int x=0;x<arr.length-1;x++){ //楼主这里的y<arr.length-1是多余的,外层循环只判断x,而内循环则是用来判断y的,且你的书写格式也不正确,for循环语句中只能有两个分号
for(int y=1;y<arr.length;y++){
if(arr[x]<arr[y]){
int temp = arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
} //还有楼主这里的反大括号输入成中文的了,记得改正哟
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2