`
yianpuodiaotu
  • 浏览: 241685 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java 的各种排序算法

阅读更多
package dasf;

public class Sort {

	/** 创建一新数组 */
	private static int[] numArray = { 5, 12, 2, 63, 22, 6, 54, 42 };

	/** 计算新数组的长度 */
	private static int count = numArray.length;

	/**
	 * 构造方法
	 */
	protected Sort() {

	}

	/**
	 * 程序的唯一入口 main 方法
	 * 
	 * @param args
	 */
	public static void main1(String[] args) {
		BubbleSort(numArray);
		
		/** 输出 */
		for (int i = 0; i < count; i++) {

			System.out.print(numArray[i] + "\t");
		}
		

	}
	/**
	 * 选择
	 */
	public static void SelectSort(int[] array) {
       for (int i = 0; i < array.length; i++) {
    	   // 最大值得位置 
    	   int max = i;
    	   for (int j = i+1; j < array.length; j++) {
    		   if(array[max] < array[j]){
    			   max = j;
    		   }
    	   }
    	   swap(array,i,max);
       }
    }

	/**
	 * 插入法排序
	 */
    public static void InsertSort(int[] array) {
        for (int i = 1; i < array.length; i++) {
            int tmp = array[i];
            int j = i;
            while (j > 0 && array[j - 1] < tmp) {
                array[j] = array[j - 1];
                --j;
            }
            array[j] = tmp;
        }
    }
    /**
     * 冒泡法排序
     */
    public static void BubbleSort(int[] array) {
		int temp;
		for (int i = 0; i < array.length - 1; i++) {
			for (int j = i + 1; j < array.length; j++) {
				if (array[i] < array[j]) {
					temp = array[i];
					array[i] = array[j];
					array[j] = temp;
				}
			}
		}
	}
   
	
	/**
     * 交换数组中i和j的位置
     */
    private static void swap(int[] array, int i, int j) {
        int tmp = array[i];
        array[i] = array[j];
        array[j] = tmp;
    }
    
    /**  
     * @param pData 需要排序的数组  
     * @param left  左边的位置,初始值为0  
     * @param right 右边的位置,初始值为数组长度  
     */   
    public static void QuickSort(int[] pData,int left,int right)   
    {   
      int i,j;   
      int first,temp;   
      i = left;   
      j = right;   
      first = pData[left]; //这里选其他的数也行,不过一般选第一个  
      //一趟快速排序   
      while(true)   
      {   
      //从第二个数开始找大于中枢的数 ,从前面开始找大于pData[left]的数  
          while((++i)<right-1 && pData[i]<first);   
          //从最后一个数开始找第一个小于中枢pData[left]的数   
          while((--j)>left && pData[j]>first);   
          if(i>=j)   
              break;   
          //交换两边找到的数   
          temp = pData[i];   
          pData[i] = pData[j];   
          pData[j] = temp;   
   
      }   
      //交换中枢   
      pData[left] = pData[j];   
      pData[j] = first;   
      //递归快排中枢左边的数据   
      if(left<j)   
        QuickSort(pData,left,j);   
      //递归快排中枢右边的数据   
      if(right>i)   
        QuickSort(pData,i,right);   
    }   
   
    public static void main(String[] args){   
     
       int [] pData = new int[5];   
       for(int i = 0; i< 5; i++)   
            pData[i] = (int)(Math.random()*100);//Produce 10 random integers   
         
        for(int i = 0; i<pData.length; i++){   
            System.out.print(pData[i]+" ");    
        }  
        QuickSort(pData, 0, pData.length);   
         
        System.out.println("\n***********************");   
         
        for(int i = 0; i<pData.length; i++){   
            System.out.print(pData[i]+" ");   
        }  

    }
}
 
分享到:
评论

相关推荐

    Java各种排序算法

    本文将详细介绍几种常见的Java排序算法,包括它们的工作机制、优缺点以及适用场景。 1. 插入排序 - 直接插入排序:该算法通过将每个元素插入到已排序部分的正确位置来工作。在Java中,可以通过遍历数组,将每个...

    java各种排序算法

    Java作为广泛应用的编程语言,提供了丰富的工具和方法来实现各种排序算法。以下是对标题"java各种排序算法"和描述中涉及的知识点的详细说明。 1. **冒泡排序(Bubble Sort)** 冒泡排序是最基础的排序算法之一,通过...

    Java各种排序算法代码.zip

    这个名为"Java各种排序算法代码.zip"的压缩包包含了一系列实现不同排序算法的Java源代码。排序算法是计算机科学中的基本概念,用于对一组数据进行排列。下面将详细讨论这些算法及其在Java中的实现。 1. 冒泡排序...

    Java各种排序算法(含代码)

    在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在Java中,了解和掌握各种排序算法对于提升程序性能至关重要。以下是对标题和描述中提到的Java各种排序算法的详细解释,以及它们的实现代码概述。 1)*...

    Java各种排序算法Demo

    本资料包"Java各种排序算法Demo"聚焦于通过Java代码展示不同的排序算法,旨在帮助开发者理解和应用这些算法。 首先,我们来探讨几种基础的排序算法: 1. **冒泡排序**:冒泡排序是一种简单的排序算法,通过重复...

    Java各种排序算法代码

    Java作为一种广泛使用的编程语言,提供了丰富的工具和方法来实现各种排序算法。本篇将详细讲解标题为"Java各种排序算法代码"的知识点,这些代码案例不仅完整,而且能够运行,非常适合学习和实践。 1. 冒泡排序...

    java各种排序算法源码

    本资源"java各种排序算法源码"涵盖了六种常见的排序算法,它们分别是:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序和堆排序。接下来,我们将详细探讨这些排序算法的基本原理、特点以及在Java中的实现...

    Java各种排序算法、Java游戏和实例代码集合

    在这个"Java各种排序算法、Java游戏和实例代码集合"中,我们可以深入学习Java编程的核心技术,并通过实践加强理解。以下是一些关键知识点的详细说明: 1. **排序算法**: - **冒泡排序**:是最基础的排序算法之一...

    java 各种排序算法

    在提供的文件列表中,`SortCode.java`很可能包含了上述各种排序算法的实现代码,可以用来理解和学习这些算法的细节。`sortTest.java`可能是测试这些排序算法的代码,通过运行测试来验证算法的正确性和效率。`...

    java各种排序算法实现

    java各种排序算法实现,仅供参考。java各种排序算法实现,仅供参考。

    Java各种排序算法代码.7z

    这里,我们将深入探讨一些常见的Java排序算法,包括它们的工作原理、优缺点以及适用场景。 1. 冒泡排序(Bubble Sort): 冒泡排序是一种简单的交换排序,通过重复遍历数组,比较相邻元素并根据需要交换它们,直到...

    Java各种排序算法代码.

    本资源包含的是Java实现的各种常见排序算法的代码示例,每个算法都有详细的注释,方便初学者理解和学习。 1. **冒泡排序**:这是一种基础的排序算法,通过不断交换相邻的逆序元素来逐渐把较大的元素推向数组的后部...

Global site tag (gtag.js) - Google Analytics