shengxu

 

关于排序的算法题,有插入排序,冒泡排序,选择排序,以下贴上用JAVA实现的代码:

public class test5
{

	public static void print(int []array)             //输出数组方法
	{
		for(int i=0;i<array.length;i++)
		System.out.print(" "+array[i]);
		
	}
	
	public static void selectsort(int array[])        //选择排序方法
	{		
        for (int i = 0; i < array.length; i++)
	    {       
        	int min=i;
	        for(int j=i+1;j<array.length;j++)
            if(array[min]>array[j])
			   min =j;
		    if(i!=min)
		    {
               int temp=array[i];
               array[i]=array[min];
               array[min]=temp;
            }
	    }
    }
	
	public static void insertsort(int array[])       //插入排序方法
	{
		for (int i = 1; i < array.length; i++)
		{
			int a=array[i];
			int j=i-1;
			for(;j>=0;j--)
			{
				if(a<array[j])
				array[j+1]=array[j];	
				else 
					break;
			}
			array[j+1]=a;
		}
	}	
		
	public static void bubblesort(int array[])  //冒泡排序
	{
		
		for(int i=0;i<array.length-1;i++)
		{
	        for(int j=0;j<array.length-1-i;j++)
	        {
	           if(array[j]>array[j+1])
	           {
                  int temp=array[j];
                  array[j]=array[j+1];
	              array[j+1]=temp;
	           }
	        }
			
		}
		
	}
		
	public static int[] merge(int a[],int b[])     //两个有序数组的合并
	{
			int c[]=new int[a.length+b.length];
			int i=0,j=0,k=0;
			while (i<a.length&&j<b.length)
		    {
			   if (a[i]>b[j]) 
                  c[k++]=b[j++];
			   else 
				  c[k++]=a[i++];
			}
			while(i<a.length)
				  c[k++]=a[i++];
			 while(j<b.length)
				 c[k++]=b[j++];
			return c;
	}
		
	public static void main(String[] args) 
	{
	   int a[]={55,76,29,80,92,41,16};
	   int b[]={73,10,84,99,69,45};

	  
	  // System.out.println("hello" );  
	   
	   System.out.print("数组a:" );  
	   print(a);
	   System.out.print(\'\n\');  
	   System.out.print("数组b:" );  
	   print(b);
	   System.out.print(\'\n\');  
	   System.out.print("选择排序:" );  
	//   selectsort(a);
	   print(a);
	   System.out.print(\'\n\'); 
	   System.out.print("冒泡排序:" );  
	   bubblesort(a);
	   print(a);
	   System.out.print(\'\n\'); 
	   System.out.print("插入排序:" );  
	   insertsort(b);
	   print(b);
	   System.out.print(\'\n\'); 
	   System.out.print("合并数组:" );  
	   print(merge(a, b));
    }
}

 运行后的结果如下图所示 

 

分类:

技术点:

相关文章:

  • 2021-10-07
  • 2021-07-13
  • 2021-07-17
  • 2021-09-13
猜你喜欢
  • 2021-08-19
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2021-09-21
  • 2021-08-08
相关资源
相似解决方案