我有一个数组
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;
}
}
答案 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