码迷,mamicode.com
首页 > 其他好文 > 详细

sort numbers with three stacks

时间:2018-04-06 10:54:46      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:tac   public   BMI   sele   好的   span   selection   numbers   select   

s3 是用来存放sort 结果的,整个算法非常像 selection sort/bubble sort

1: 每次从s1中选出最小的一个放在s3 中,其他非最小的放入s2 中

2: 然后把s2 的数字放回到s1 中

循环结束后,s3 中的就是sort 好的结果

 1 public void sort(LinkedList<Integer> s1) {
 2     Deque<Integer> s2 = new LinkedList<>();
 3     Deque<Integer> s3 = new LinkedList<>();
 4     
 5     int size = s1.size(); 
 6     for (int i = 0; i < size; i++) {
 7         int globMin = Integer.MAX_VALUE;
 8         while (!s1.isEmpty()) {
 9             int top = s1.pop();
10             globMin = Math.min(globMin, top);
11             s2.push(top);
12         }
13 
14         s3.push(globMin);
15         while (!s2.isEmpty()) {
16 int top = s2.pop();
17 if (top == globMin) {
18 globMin = Integer.MAX_VALUE;
19 continue;    
20 }
21 s1.push(top);
22         }
23     }
24     
25     while (!s3.isEmpty()) {
26         s1.push(s3.pop());
27     }
28 }

 

sort numbers with three stacks

标签:tac   public   BMI   sele   好的   span   selection   numbers   select   

原文地址:https://www.cnblogs.com/davidnyc/p/8726816.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!