Java二分插入排序
2016-03-16 14:40
585 查看
public class BinaryInsertSort{
public static void main(String args []){
int[] a = { 49, 38, 65, 97, 176, 213, 227, 49, 78, 34, 12, 164, 11, 18,1 };
System.out.print("排序之前:");
for(int i=0;i<a.length;i++){
System.out.println(a[i]+" ");
}
sort(a);
System.out.println();
System.out.println("排序之后:");
for(int i=0;i<a.length;i++){
System.out.println(a[i]+" ");
}
}
public static void sort(int[] a){
for(int i=0;i<a.length;i++){
int temp=a[i];
int left=0;
int right=i-1;
int mid=0;
while(left<=right){
mid=(left+right)/2;
if(temp<a[mid]){
right=mid-1;
}else{
left=mid+1;
}
}
for(int j=i-1;j>=left;j--){
a[j+1]=a[j];
}
if(left!=i){
a[left]=temp;
}
}
}
}
public static void main(String args []){
int[] a = { 49, 38, 65, 97, 176, 213, 227, 49, 78, 34, 12, 164, 11, 18,1 };
System.out.print("排序之前:");
for(int i=0;i<a.length;i++){
System.out.println(a[i]+" ");
}
sort(a);
System.out.println();
System.out.println("排序之后:");
for(int i=0;i<a.length;i++){
System.out.println(a[i]+" ");
}
}
public static void sort(int[] a){
for(int i=0;i<a.length;i++){
int temp=a[i];
int left=0;
int right=i-1;
int mid=0;
while(left<=right){
mid=(left+right)/2;
if(temp<a[mid]){
right=mid-1;
}else{
left=mid+1;
}
}
for(int j=i-1;j>=left;j--){
a[j+1]=a[j];
}
if(left!=i){
a[left]=temp;
}
}
}
}
相关文章推荐
- Java NIO系列教程(九) ServerSocketChannel
- 如何在SpringMVC中获取request对象
- java错误
- java 编译.java文件
- Java学习笔记--HashMap
- Java过滤器与SpringMVC拦截器之间的关系与区别
- java nio
- 用JAVA生成老电影海报
- 工具类——java在图片指定位置写字
- java给图片添加小图片和文本信息
- java.io.PrintWriter 中 write() 与 print() 的区别
- Thinking In Java 读书笔记
- JAVA基础拾遗
- eclipse安装lombok插件
- [JAVA关键字] synchronized
- Spring对AOP的支持
- Spring 定时任务执行两次 解决办法
- JAVA各种数据类型简介
- JAVA常识积累
- Spring使用facotry-method创建单例Bean总结<转>