比较java中的字符

时间:2014-09-14 05:05:25

标签: java character

我有一个数组

char[] A = {'a','c','e','b','d'};

我想按升序排列数组,即

A ={'a','b','c','d','e'};

如何在java中完成它,因为简单的>运算符不会给我正确的答案。 代码:

for(int i=A.length-1; i>=1;i--)
{
    if(A[i]<A[i-1])
    {
        char a =A[i];
        A[i] = A[i-1];
        A[i-1] = a;                          
    }
}

2 个答案:

答案 0 :(得分:1)

提示:您只是通过数组进行一次传递。这还不够。

如果您不明白我的意思,请尝试&#34;手动执行&#34;具有输入数组的代码,该数组具有相反顺序中的字母,以满足要求。

  • 是否有人通过整个数组会给你一个正确排序的数组?

  • 它究竟做了什么?

  • 那你现在需要做什么......?

答案 1 :(得分:0)

看来你要做的就是我们称之为Bubblesort的开始。您已经完成了单个字符列表的传递,只交换了其中一些字符。您实际上必须重复此过程,直到没有交换。

可以找到有关Bubblesort的更多信息here。特别是有伪代码概述了这个概念:

procedure bubbleSort( A : list of sortable items )
    n = length(A)
    repeat     
        swapped = false
        for i = 1 to  n-1 inclusive do
            /* if this pair is out of order */
            if A[i-1] > A[i] then
                /* swap them and remember something changed */
                swap( A[i-1], A[i] )
                swapped = true
            end if
        end for
    until not swapped
end procedure