数组总结
2015-09-01 19:24
239 查看
1冒泡排序和选择排序
二分查找
package hello; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashSet; import java.util.Random; import java.util.TreeSet; public class Test02{ public static void main(String[] args) throws Exception { //把数组拼接成一个字符串 int[] arr={34,23,12,55,13}; sort(arr); System.out.println(arrayToString2(arr)); for(int x=0;x<arr.length-1;x++){ for(int y=0;y<arr.length-1-x;y++){ if(arr[y]>arr[y+1]){ int temp=arr[y]; arr[y]=arr[y+1]; arr[y+1]=temp; } } } System.out.println(arrayToString2(arr)); } public static void sort(int[] arr){ for(int x=0;x<arr.length-1;x++){ for(int y=x+1;y<arr.length;y++){ if(arr[y]<arr[x]){ int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } } } } public static String arrayToString2(int[] arr){ StringBuffer sb=new StringBuffer(); sb.append("["); for(int i=0;i<arr.length;i++){ if(i==arr.length-1){ sb.append(arr[i]); }else{ sb.append(arr[i]).append(", "); } } sb.append("]"); return sb.toString(); } public static String arrayToString(int[] arr){ String s=""; s+="["; for(int i=0;i<arr.length;i++){ if(i==arr.length-1){ s+=arr[i]; }else{ s+=arr[i]; s+=", "; } } s+="]"; return s; } }
二分查找
package hello; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashSet; import java.util.Random; import java.util.TreeSet; public class Test02{ public static void main(String[] args) throws Exception { int[] arr={12,13,17,24,29,44}; int mid=getIndex(arr, 14); System.out.println(mid); } public static int getIndex(int[] arr,int value){ int max=arr.length-1; int min=0; int mid=(max+min)/2; while(arr[mid]!=value){ if(arr[mid]>value){ max=mid-1; }else if(arr[mid]<value){ min=mid+1; } if(min>max){ return -1; } mid=(max+min)/2; } return mid; } }
相关文章推荐
- expect用法
- SimpleFork php多进程并发框架
- 使用servlet实现登录
- .net 取当前代码的行号及类名称
- Spring Data Redis
- linux常用命令(17):whereis命令
- 第二篇 使用javascript控制字体
- python unittest源码解析一----测试用例是如何被执行的
- HDU 1113
- java学习笔记之——多线程(三)
- 利用js和Ajax实现的表单的检查和提交
- C语言基础知识之(十七):内存的分区:栈区,堆区,静态区(全局区),常量区,代码区
- FFMPEG SDK 开发介绍
- UVa 11572 - Unique Snowflakes (滑动窗口STL_map||set) 好题!!!
- 9-1课堂笔记
- 8-31课堂笔记
- tomcat环境变量配置
- cxf根据wsdl生成webserivice服务端
- Java判断字符串中是否包含中文
- xcode6.0以后pch的创建方式