快排相关面试题
来源:互联网 发布:矩阵乘法分配律 编辑:程序博客网 时间:2024/05/12 11:43
包含N个数的数组,求所有和为16的两个数字的组合
首先用快排对数组进行排序
然后用类似快排的方法用两个指针从头尾进行相加,时间复杂度排序为O(nlogn),找组合为O(n)
用Java实现的:
public class test1 {private static int arr[]={9,3,5,12,21,7};public static void qsort(int i,int j){if(j>i){int medium=onesort(i,j);qsort(i,medium-1);qsort(medium+1,j);}}public static int onesort(int i,int j){int target=arr[i];boolean iTurn=false;while(i<j){if(iTurn){if(arr[i]>target){int temp=arr[i];arr[i]=arr[j];arr[j]=temp;iTurn=false;}else{i++;}}else{if(arr[j]<target){int temp=arr[i];arr[i]=arr[j];arr[j]=temp;iTurn=true;}else{j--;}}}return i;}public static void main(String args[]){int i=0;int j=arr.length-1;qsort(0,arr.length-1);for(int k=0;k<arr.length;k++){System.out.println(arr[k]);}while(i<j){if(arr[i]+arr[j]==16){System.out.println(arr[i]+"+"+arr[j]);i++;j--;}else if(arr[i]+arr[j]>16){j--;}else if(arr[i]+arr[j]<16){i++;}}}}
- 快排相关面试题
- 面试题——快排挖坑法的应用
- 基于快排的算法面试题partition
- 快排相关
- 快排相关知识
- 快排相关
- 剑指Offer面试题29数组中出现次数超过一半的数字(涉及快排)
- 剑指Offer面试题30最小的K个数(涉及堆或快排)
- 程序员常见面试题之快排、归并非递归算法
- 快播java面试题
- 剑指Offer面试题8旋转数组的最小数字(二分查找)附带快排和按年龄排序
- 字符串相关面试题
- 相关面试题 回答
- spring相关面试题
- Android相关面试题
- 操作系统相关面试题
- String相关面试题
- 字符串相关面试题
- Hibernate HQL Editor使用
- 谈总结
- 常吃四类食物能够对抗二手烟
- MySQL Cookbook 学习笔记-03
- Delphi驱动开发研究第二篇--工具及环境搭建
- 快排相关面试题
- msyql重设密码
- Linux设备驱动之Framebuffer分析
- jQuery对象与dom对象的转换
- MYSQL - 菜鸟实战笔记
- Delphi驱动开发研究第三篇--一个完整的驱动程序示例
- loginform
- Checkstyle
- Android:ThreadLearning1