`
nicegege
  • 浏览: 589479 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

二分排序

 
阅读更多

1.二分排序:数组中选择最后一个元素当做参考,从头开始遍历数组发现大于参数的元素则放大到参考值的位置。从尾遍历数组发现小于参考值的元素则放到上面的的位置。在现在的位置放参考元素。

代码:

public class ErFen2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] a=new int[10];
		for(int i=0;i<a.length;i++){
			a[i]=(int)Math.round(Math.random()*10);
			System.out.print(a[i]+"\t");
		}
		System.out.println("");
		twosort(a,0,a.length-1);
	   for(int i=0;i<a.length;i++){
		   
		   System.out.print(a[i]+"\t");
	   }
		
	}
	public static int[] twosort(int[] a,int low,int high){
	
		int i,j,temp;
	
		
		if(low<high){
			i=low;
			j=high;
			temp=a[j];
			while(i<j){
				while(i<j&&a[i]<temp) i++;
				if(i<j){
					a[j]=a[i];
					j--;
					
				}
				while(i<j&&a[j]>temp) j--;
				if(i<j){
					a[i]=a[j];
					i++;
					}
		
				a[j]=temp;
				
			}
		
	
			twosort(a,low,j-1);
			twosort(a,j+1,high);
			
		}
	
		
		return a;
	}

}

 

分享到:
评论

相关推荐

    冒泡排序 二分排序 自己写的

    冒泡排序和二分排序是两种常见的排序算法,在计算机科学中有着广泛的应用。它们各自具有不同的特点和适用场景,下面将详细介绍这两种排序方法。 首先,我们来看冒泡排序(Bubble Sort)。冒泡排序是一种简单的排序...

    二分排序(快排)

    C语言二分排序代码,简单明了。。。。。。。。。。。。

    易语言二分排序源码

    在提供的压缩包文件中,“易语言二分排序源码.e”显然是易语言编写的源代码文件,而“简单说明.txt”可能包含了对这个排序算法的简要介绍或使用指南。 二分排序,也称为二分插入排序,是基于二分查找的一种排序算法...

    基于二分排序法时间复杂度的求解过程.pdf

    "基于二分排序法时间复杂度的求解过程.pdf" 该研究论文主要探讨了二分排序法的时间复杂度求解过程。时间复杂度是衡量算法性能的一个重要指标,它对算法的设计和优化具有重要影响。论文首先介绍了算法分析的目的和...

    从二分排序看到的知识

    二分排序,也被称为二分插入排序(Binary Insertion Sort),是一种基于插入排序的优化算法。在普通插入排序中,我们需要遍历整个已排序部分来找到新元素的正确位置,而二分排序则通过二分查找来降低这个过程的时间...

    二分排序法

    C程序的二分排序算法,思路清晰,方法简洁。

    二分查找排序算法.zip

    二分查找排序算法是一种高效的排序方法,它是基于二分查找思想和插入排序的结合体。在计算机科学中,排序算法是处理数据集合的一种基础方法,它使得数据按照特定的顺序排列,例如升序或降序。二分查找排序算法特别...

    C语言实现二分查找与排序

    本话题主要关注C语言实现的二分查找和排序算法,这两种算法在计算机科学中有着重要的应用。 **二分查找** 是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将数组分成两个部分,每次比较中间元素与目标值...

    二分法排序和查找(C#)

    - 二分插入排序的平均和最坏情况时间复杂度为O(n^2),与普通插入排序相同,但最好的情况(数组已经排序)时间复杂度为O(n log n),因为它利用了二分查找的优势。 在给定的文件列表中,"Dichotomy.cs"可能包含了二分...

    java冒泡排序、快速排序、二分查找

    Java 中的排序算法包括冒泡排序、快速排序等,而查找算法则有二分查找等。这些算法都是 Java 开发中非常重要的基础知识。本文将对冒泡排序、快速排序、二分查找进行详细的分析和图解。 冒泡排序 冒泡排序是一种...

    二分搜索树排序 BST (c++实现)

    二分搜索树排序 BST (c++实现)二分搜索树排序 BST (c++实现)二分搜索树排序 BST (c++实现)

    MATLAB实现插入排序、二分归并排序、归并排序.rar

    在本资源中,我们主要关注的是使用MATLAB编程语言实现三种经典的排序算法:插入排序、二分归并排序以及归并排序。这些算法是计算机科学基础中的重要组成部分,特别是在算法设计与分析领域。MATLAB是一种强大的数值...

    java选择排序,冒泡排序代码,二分查找

    自己写的java选择排序,冒泡排序代码,二分查找,还有500个小孩手拉手数三退一问题,供初学者参考一下

    常用算法 2分法插入排序

    2分法插入排序(Binary Insertion Sort)是一种基于插入排序的算法,它结合了二分查找的策略来优化传统插入排序的过程。在传统插入排序中,我们需要将一个新元素与已排序的序列逐个比较,找到合适的位置插入。而2分...

    易语言-易语言二分排序算法

    二分排序算法是数据结构与算法中的一个重要概念,尤其在处理大量数据时能展现出高效的性能。在此,我们将深入探讨易语言如何实现二分排序算法及其相关知识点。 一、易语言基础 易语言采用直观的中文词汇作为语句和...

    易语言源码二分插入排序.rar

    二分插入排序是一种高效且常用于优化的排序算法,尤其在处理近似有序的数据时表现优秀。它结合了二分查找的效率与插入排序的稳定性。在这个“易语言源码二分插入排序.rar”压缩包中,我们可以找到一个用易语言实现的...

    快速排序的非递归实现

    - **划分操作**:从子数组的第二个元素开始遍历,将小于基准的元素放在基准前面,大于或等于基准的元素放在基准后面。完成后,基准元素会位于最终排序后的位置,此时数组被划分为两部分。 - **更新子数组范围**:...

    二分插入排序算法

    使用二分方法实现插入排序

    文件读出数组进行选择排序和二分查找(java)

    在Java编程中,文件读取、数组操作、选择排序以及二分查找是常见的编程任务,它们涉及了IO流、数据结构和算法等多个方面。以下是这些知识点的详细解释: 1. **文件读取**:Java提供了丰富的IO流类库用于读取文件。...

    快速排序对数组排序,二分查找。

    快速排序和二分查找是计算机科学中非常基础且重要的算法,它们在数据处理和效率提升方面发挥着关键作用。快速排序是一种高效的排序算法,而二分查找则是一种在有序序列中寻找特定元素的有效方法。 快速排序由英国...

Global site tag (gtag.js) - Google Analytics