Java中基于栈和队列的排序算法 - 编程入门网
START_TWO;
max = stackTwo.pop();
sizeTwo--;
while (sizeTwo > 0) {
int value = stackTwo.pop();
if (value > max) {
stackOne.push(max);
max = value;
} else
stackOne.push(value);
sizeTwo--;
sizeOne++;
}
stackTwo.push(max);
}
// sizeOne和sizeTow中必然一个为0,一个为1
return (sizeOne > sizeTwo ? START_ONE : START_TWO);
}
public void printResult(int start) {
System.out.print("Result :");
if (start == START_ONE)
printStack(stackOne, stackTwo);
else
printStack(stackTwo, stackOne);
System.out.println();
}
private void printStack(IntStack one, IntStack two) {
while (one.empty() == false && two.empty() == false) {
System.out.print(one.pop() + " ");
System.out.print(two.pop() + " ");
}
if (one.empty() == false)
System.out.print(one.pop() + " ");
}
public static void main(String[] args) {
StackSort ssort = new StackSort(new int[] { 3, 1, 7, 1 });
ssort.printResult(ssort.sort());
ssort = new StackSort(new int[] { 3, 1, 9 });
ssort.printResult(ssort.sort());
}
}
Java中基于栈和队列的排序算法(3)时间:2011-04-133.队列的排序算法 每次循环取源队列数据,找出最大者加入目标队列,其余放回源队列,直到源队列空,排序完 成(这种算法适合于实现约瑟夫环).如果每次取出的最大值直接打印,则不需要额外辅助队 列. 3.1所使用的队列数据结构
3.2队列排序
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |