黑马程序员技术交流社区
标题:
字符数组排序
[打印本页]
作者:
李月
时间:
2012-5-8 16:06
标题:
字符数组排序
char[] ch={'b','e','g','a','h'};
for(int i=0;i<ch.length;i++)
{
for(int n=1;n<ch.length;n++)
{
if(ch[i]>ch[n])
{
char a=ch[i];
ch[i]=ch[n];
ch[n]=a;
}
}
}
for(int i=0;i<ch.length;i++)
{
System.out.print(ch[i]);
}
我写的排序方法,怎么打印结果是:ahgeb
没有排序呢?看了半天代码,也不知道问题在哪?
求解决。
作者:
李啸
时间:
2012-5-8 16:22
char[] ch = { 'b', 'e', 'g', 'a', 'h' };
for (int i = 0; i < ch.length; i++) {
for (int n = i+1; n < ch.length; n++) {
if (ch[i] > ch[n]) {
char a = ch[i];
ch[i] = ch[n];
ch[n] = a;
}
}
}
for (int i = 0; i < ch.length; i++) {
System.out.print(ch[i]);
}
因为你每次都要去跟前一个去比较所以在内层循环中需要外层循环遍历+1
作者:
魏涞
时间:
2012-5-8 16:27
char[] ch = { 'b', 'e', 'g', 'a', 'h' };
for (int i = 0; i < ch.length; i++) {
for (int n = i+1; n < ch.length; n++) {
//这里的内层循环有问题,每次比较为当前待比较字符的后一个字符进行比较
if (ch
> ch[n]) {
char a = ch
;
ch
= ch[n];
ch[n] = a;
}
}
}
for (int i = 0; i < ch.length; i++) {
System.out.print(ch
);
}
}
作者:
邱俊杰
时间:
2012-5-8 16:27
标题:
1
char[] ch = { 'b', 'e', 'g', 'a', 'h' };
for (int i = 0; i < ch.length; i++) {
for (int n = i+1; n < ch.length; n++) {//这里有问题了、应该是加1,冒泡排序,当你第二遍进来的时候不应该是1,应该是2了
if (ch[i] > ch[n]) { //
char a = ch[i];
ch[i] = ch[n];
ch[n] = a;
}
}
}
for (int z = 0; z < ch.length; z++) {
System.out.print(ch[z]);
}
}
复制代码
作者:
郭振
时间:
2012-5-8 16:30
这个是选择排序
class Test
{
public static void main(String[] args)
{
char[] ch={'b','e','g','a','h'};
for(int i=0;i<ch.length-1;i++)
{
for(int n=i+1;n<ch.length;n++)
{
if(ch[i]>ch[n])
{
char a=ch[i];
ch[i]=ch[n];
ch[n]=a;
}
}
}
for(int i=0;i<ch.length;i++)
{
System.out.print(ch[i]);
}
}
}
作者:
隋营营
时间:
2012-5-8 16:35
搞定,用选择排序:
public class Testext {
public static void main(String[] args) throws Exception {
char[] ch = { 'b', 'e', 'g', 'a', 'h' };
char temp;
for (int i = 0; i < ch.length; i++) {
int tag = i;
for (int j = i + 1; j < ch.length; j++) {
if (ch[j] < ch[tag]) {
tag = j;
}
}
if (i != tag) {
temp = ch[i];
ch[i] = ch[tag];
ch[tag] = temp;
}
}
for (int i = 0; i < ch.length; i++) {
System.out.println(ch[i]);
}
}
}
复制代码
作者:
韩慧阳
时间:
2012-5-8 16:41
class Px
{
public static void main(String[] args)
{
char[] ch={'b','e','g','a','h'};
for(int i=0;i<ch.length;i++)
{
for(int n=i+1;n<ch.length;n++)//内循环错了
{
if(ch[i]>ch[n])
{
char a=ch[i];
ch[i]=ch[n];
ch[n]=a;
}
}
}
for(int i=0;i<ch.length;i++)
{
System.out.print(ch[i]);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2