java算法(一)——排序算法(上)

  排序(sort)是将一组数据按照一定的规则来进行排列,一般按照递增或者递减的顺序来进行排列。排序算法是一种最基本的算法,但是在实际应用中非常广泛,对于初学编程人来说,排序算法也是最基本的算法之一。本节主要讲解排序算法中相对简单的几种,分别是:

 1、冒泡排序

 2、选择排序

 3、插入排序

  后边还会介绍一些,其他的排序方法,比如:shell排序、快速排序、堆排序等等。


1、冒泡排序 (简单基本)

	public static void bubbleSort(int[] a) {
		 int temp;
		 for (int i = 1; i < a.length; i++) {
              //将相邻两个数进行比较,较大的数往后冒泡
        	  for (int j = 0; j < a.length - i; j++) {
        		  if (a[j] > a[j + 1]) {
                   //交换相邻两个数
        			  temp=a[j];
        			  a[j]=a[j+1];
        			  a[j+1]=temp;
        		  }
        	  }
        	  System.out.print("第"+i+"步排序结果:");			//输出每步排序的结果
        	  for(int k=0;k<a.length;k++)
        	  {
        		  System.out.print(" "+a[k]); // 输出
        	  }
        	  System.out.print("\n"); 
		 }
	 } 

2、选择排序

	public static void selectSort(int[] a) 
	{
		 int index,temp;
         for (int i = 0; i < a.length-1; i++) 
         {
        	index = i;
        	for (int j = i+1; j <a.length; j++) 
        	{
        		if (a[j] < a[index]) 
        		{
        			index = j;
        		}
        	}
        	//交换两个数
        	if(index!=i)
        	{
        	temp=a[i];
        	a[i]=a[index];
        	a[index]=temp;
        	}
        	System.out.print("第"+i+"步排序结果:");			//输出每步排序的结果
    		for(int h=0;h<a.length;h++)
    		{
    			System.out.print(" "+a[h]);				//输出
    		}
    		System.out.print("\n");
        }
	}

3、插入排序

	static void insertionSort(int[] a)  				//插入排序
	{
	    int i,j,t,h;
	    for (i=1;i<a.length;i++)
	    {
			t=a[i];
			j=i-1;
			while(j>=0 && t<a[j])
			{
				a[j+1]=a[j];
				j--;
			}
			a[j+1]=t;

			System.out.print("第"+i+"步排序结果:");			//输出每步排序的结果
			for(h=0;h<a.length;h++)
			{
				System.out.print(" "+a[h]);				//输出
			}
			System.out.print("\n");
		}
	}

前三种排序方式相对简单,但却非常基本,掌握之后用处很大。

猜你喜欢

转载自blog.csdn.net/h9f3d3/article/details/51646065
今日推荐