一个简单的排序面试题
来源:互联网 发布:中国科协网络平台 编辑:程序博客网 时间:2024/05/14 02:29
* 一个小面试题:
* There is an array 2,10,11,4,21,5,7,6,19,15,please sort them with below order
* The maximum + the minimum + the second-largest one + the second-smallest one + ...
package main;public class SortArray {/** * 一个小面试题: * There is an array 2,10,11,4,21,5,7,6,19,15,please sort them with below order * The maximum + the minimum + the second-largest one + the second-smallest one + ... */public static void main(String[] args) {// TODO Auto-generated method stub/* * 解题思路: * 先把数组按从大到小排序 * 21,19,15,11,10,7,6,5,4,2 * 然后一次按最小序号取出,放到一个新数组的0,2,4,6序号对应的数组位置中 * 同理,倒着取一次,放到新数组的1,3,5,7序号对应的数组位置中*/int [] iArray = {2,10,11,4,21,5,7,6,19,15};int [] iOrderArray = new int[iArray.length];/** * 冒泡排序,按从大到小排序 */for(int i=0;i<iArray.length;i++){int temp =0;for(int j=i+1;j<iArray.length;j++){if(iArray[i]<iArray[j]){temp = iArray[i];iArray[i] = iArray[j];iArray[j] = temp;}}}System.out.print("用冒泡排序后:");for(int i=0;i<iArray.length;i++){System.out.print(iArray[i]+",");}System.out.print("\r\n");/** * 将排好序的数组 * 将数组的前一半,正序,按序号从小到大放入新数组的 0, 2, 4,index...序号中 * 同理,将数组的后一半,倒序,按序号从大到小放入新数组的 0+1, 2+1, 4+1,index+1...序号中 * * 注意:数组 ArrayIndexOutOfBoundsException 新数组要限制在范围内index<iArray.length * 注意:要考虑到数组中的个数 奇数个 和偶数个 要通用 *///方法一:分两步实现int maxindex = 0;for(int j=0;j<=(iArray.length)/2 && maxindex<iArray.length;j++){iOrderArray[maxindex] = iArray[j];maxindex +=2;}int minindex = 1; for(int h=iArray.length-1;h >= iArray.length/2 && minindex<iArray.length;h--){iOrderArray[minindex] = iArray[h];minindex +=2;}System.out.print("方法一排序后:");for(int i=0;i<iArray.length;i++){System.out.print(iOrderArray[i]+",");}System.out.println();//方法二:一步实现int index = 0;for(int j=0;j<=(iArray.length)/2 && index < iArray.length-1;j++){iOrderArray[index] = iArray[j];iOrderArray[index+1] = iArray[iArray.length-1-j];index +=2;}System.out.print("方法二排序后:");for(int i=0;i<iArray.length;i++){System.out.print(iOrderArray[i]+",");}}}
0 0
- 一个简单的排序面试题
- 一个简单的面试题
- 一个简单的html面试题思考
- 简单的面试题
- 关于三色球的一个排序程序(面试题)
- 常见笔试面试题:实现一个递增排序的单链表
- 一个简单的c++面试题纠结了哈
- 简单的SQL面试题
- 一道简单的面试题
- 几个简单的面试题
- 一道简单的面试题
- 一道简单的面试题
- 单链表的简单面试题
- 单链表的简单面试题
- 别人的一个面试题
- 一个STL的面试题.
- 华为的一个面试题
- 一个经典的面试题
- windows socket编程,连续发送接收
- java类、对象概念
- ACdream 1213 Matrix Multiplication【水题 、 找规律】
- C++中的标准库类型
- UISegmentedControl切换页面
- 一个简单的排序面试题
- allegro中Comps和Symbols属性的区别及各属性解释
- 标准流与非标准流
- android.mk用法
- ABAP inner join 性能影响
- 常用的第三方类
- Android应用程序打包时,出现错误:Android Lint "app_name" is not translated in "af" (Afrikaans), "am" (Amharic), "
- 【ZOJ1586】【MST水题】【prim】
- Java Web提交任务到Spark