黑马程序员技术交流社区
标题:
这个结果为什么是反的
[打印本页]
作者:
赵方明
时间:
2012-5-19 20:44
标题:
这个结果为什么是反的
class xuanzepaixu
{
/*
需求:将一个数组按从小到大排列
思路:1,返回值类型是void
2,有未知参数
*/
public static void selectsort(int [] arr)
{
for (int x=0;x<arr.length ;x++ )
{
for (int y=0;y<arr.length ;y++ )
{
if (arr[x]>arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
public static void main(String [] args)
{
int [] arr={2,5,9,3,6,7};
bianli(arr);
selectsort(arr);
bianli(arr);
}
/*
需求:遍历数组中的元素,并打印
思路:1,返回值类型是void
2,有未知参数
*/
//遍历
public static void bianli(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.println(arr[x]+"]");
}
}
}
应该是从小到大的,但是结果是
[2,5,9,3,6,7]
[8,7,6,5,3,2]
作者:
孙宇晨
时间:
2012-5-19 21:03
for (int y=0;y<arr.length ;y++ )
应该是y=x+1;y<arr.lenth;y++
如果是y=0岂不是又换回去了.
作者:
李保成
时间:
2012-5-19 21:32
B}``SCH]`VV}R1$IY}RI1HY.jpg
(74.91 KB, 下载次数: 12)
下载附件
2012-5-19 21:31 上传
你使用的是选择排序,原理图解。
作者:
江英英
时间:
2012-5-19 21:40
你所使用的是选择排序,选择排序是每次选择一个最小的数放前面.
外循环是循环length-1次
第一次循环,从第二个数开始,逐个和第一个数比较,如果比第一个数小,就交换,最后会将最小的数换到第一个
第二次循环,从第三个数开始,逐个和第二个数比较,如果比第二个数小,就交换,最后会将最小的数换到第二个
.............依次下来...
你的外循环和内循环都写错了
应该是 for(int x = 0; x < arr.length-1;x++){
for(int y = x + 1; y < arr.length;y++){
if(arr[y] < arr[x]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
作者:
余宏
时间:
2012-5-19 21:42
package com.itcast.test;
class xuanzepaixu
{
/*
需求:将一个数组按从小到大排列
思路:1,返回值类型是void
2,有未知参数
*/
public static void selectsort(int [] arr)
{
for (int x=0;x<arr.length ;x++ )
{
for (int y=0;y<arr.length ;y++ )
{
if (arr[x]<arr[y])
{
int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}
public static void main(String [] args)
{
int [] arr={2,5,9,3,6,7};
bianli(arr);
selectsort(arr);
bianli(arr);
}
/*
需求:遍历数组中的元素,并打印
思路:1,返回值类型是void
2,有未知参数
*/
//遍历
public static void bianli(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.println(arr[x]+"]");
}
}
}
改成这样就对了,你试试
你只需要if (arr[x]>arr[y])改个方向就对了。
作者:
彩虹
时间:
2012-5-19 21:43
选择排序的思想是:从无序序列中选出一个最小的元素插入到有序序列中
它的算法为
for (int x=0;x<arr.length ;x++ )
{
for (int y=x+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