package com.bjkyhc.hxast.test;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
08 * 描述:有一组数(43,14,6,9,3,27,38,19,5等)
09 * 排序:将最大的放在第一位,最小放在第二位,剩下的最大的放在第三位,最小的放在第四位,以此类推
10 * 输出排序结果
11 * @author heng.ai
12 *
13 */
public class Test {
public static void main(String[] args) {
Test sortNumber = new Test();
Integer[] strs = {43,14,6,9,3,27,38,19,5};
List<Integer> results = sortNumber.sortStrings(sortNumber.sort(strs));
System.out.println("");
System.out.println("最后的结果:");
for(Integer result : results){
System.out.print(result + " ");
}
}
private List<Integer> sortStrings(Integer[] strs) {
List<Integer> lists = new ArrayList<Integer>();
LinkedList<Integer> results = new LinkedList<Integer>();
/*这里先普及一下ArrayList和LinkedList基本知识
* 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构
* 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
* 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
* java.util.LinkedList 类实现栈操作 栈是个后进先出的线性表*/
for(Integer str : strs){
results.push(str);
}
while(!results.isEmpty()){
lists.add(results.pop()); //取栈第一个数 Pops an element from the stack represented by this list
Integer res = results.pollLast(); //取栈最后一个数 Retrieves and removes the last element of this list
if(res != null){
lists.add(res);
}
}
return lists;
}
//从小到大排序
private Integer[] sort(Integer[] strs){
int temp = 0;
for(int i = 0; i < strs.length - 1; i++){
for(int j = i + 1; j < strs.length; j++){
if(strs[i] > strs[j]){
temp = strs[i];
strs[i] = strs[j];
strs[j] = temp;
}
}
}
System.out.println("从小到大排序后的数组:" );
for(Integer result : strs){
System.out.print(result + " ");
}
return strs;
}
}
从小到大排序后的数组:
3 5 6 9 14 19 27 38 43
最后的结果:
43 3 38 5 27 6 19 9 14