当前位置:首页 > 开发 > Web前端 > 前端 > 正文

排序算法--折半插入排序(二分查找排序)

发表于: 2011-10-09   作者:chenglinjava   来源:转载   浏览次数:
摘要: import java.util.Arrays; public class BinarySearch1 { public static void main(String args[]) { int array[]={49,38,65,97,76,13,27}; binarySort(array,array.length); System.out.println(Array
import java.util.Arrays;

public class BinarySearch1 {
public static void main(String args[])
{
int array[]={49,38,65,97,76,13,27};
binarySort(array,array.length);
System.out.println(Arrays.toString(array));
}

//二分查找
public static int binarySearch(int array[],int low,int high,int temp)
{
int mid=0;
while(low<=high)
{
mid=(low+high)/2;
if(array[mid]<temp&&temp<=array[mid+1])
return (mid+1);
else if(array[mid]<temp)
low = mid + 1;
else
high = mid -1;
}
return high;
}

//二分排序
public static void binarySort(int array[],int size)
{
int i,j,k,temp;
for(i=1;i<size;i++)
{
temp=array[i];
if(array[i]<array[0])
k=0;
else
k = binarySearch(array,0,i,temp);

for(j=i;j>k;j--)
{
array[j]=array[j-1];
}
array[k]=temp;
System.out.println(Arrays.toString(array));
}
}
}

排序算法--折半插入排序(二分查找排序)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
只有比别人更早、更勤奋地努力,才能尝到成功的滋味。 ------麦克马斯特大学训言 http://bbs.itheim
插入排序 基本思路: 基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,
算法描述: ⒈ 从第一个元素开始,该元素可以认为已经被排序 ⒉ 取出下一个元素,在已经排序的元素
直接插入排序 直接插入排序的原理:先将原序列分为有序区和无序区,然后再经过比较和后移操作将无序
C语言简单的插入算法: 插入排序的基本思想: 经过i-1遍处理后,a1,a2,…,ai-1己排好序。 第i遍
算法过程类似扑克牌抓牌排序手牌:遍历数组中的第二个元素到最后一个元素,每个遍历中的元素都与它
先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html
本文主要说明插入排序、shell排序两种排序方法。 一、插入排序  算法思想:   假定这个数组的序
  一、基本思想:根据二分查找的思想,将待查入记录分为有序表和无序表,每次取无序表的第一个关
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号