⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort.java

📁 一个JAVA编写的排序源代码,比较简单,希望大家不要见笑,上课可以用
💻 JAVA
字号:
import java.util.*;
class Sort
{
	//排序前的数组
	private void SortOfBefore(int a[])
	{ 
		System.out.println("数组的长度为: "+(a.length-1)+";排序前的数组为:");
		for(int i=1;i<a.length;i++)
		{
			System.out.print(a[i]+" ");
		}
		System.out.println();
	}
	int m_time=0;
	//选择排序
	private void SelectionSort(int a[])
	{
		Date d1=new Date();//记录该时刻d1
		for(int i=1;i<a.length-1;i++)
		{
			int k=i;
			for(int j=i+1;j<a.length;j++)
			{
				if(a[j]<a[k])
				{
					k=j;
				}
				m_time++;
			}
			if(k!=i)
			{
				int t=a[i];
				a[i]=a[k];
				a[k]=t;
			}
		}
		System.out.println("用选择排序法排序后的数组为:");
		Date d2=new Date();//记录该时刻d2
		long d=d2.getTime()-d1.getTime();	
		for(int i=1;i<a.length;i++)
		{
			System.out.print(a[i]+" ");
		}
		System.out.println();
		System.out.print("所用时间为: "+d+"毫秒");
		System.out.println();
		System.out.print("比较次数为: "+m_time);
	}
	
	//插入排序
	private void InsertionSort(int a[])
	{
		Date d1=new Date();
		for(int i=1;i<=a.length-1;i++)
		{
			int x=a[i];
			int j=i-1;
			while((j>0)&&(a[j]>x))
			{
				a[j+1]=a[j];
				j=j-1;
				m_time++;
			}
			a[j+1]=x;
		}
		Date d2=new Date();
		long d=d2.getTime()-d1.getTime();
		System.out.println("用插入排序法排序后的数组为:");
		for(int i=1;i<a.length;i++)
		{
			System.out.print(a[i]+" ");
		}
		System.out.println();
		System.out.print("所用时间为: "+d+"毫秒");
		System.out.println();
		System.out.print("比较次数为: "+m_time);
	}
	
	//冒泡排序
	private void BubbleSort(int a[])
	{
		int temp;
		Date d1=new Date();
    for(int i=1;i<a.length;i++)
    {
    	for(int j=a.length-1;j>i;j--)
    	{
    		if(a[j]<a[j-1])
    		{
           temp=a[j];
           a[j]=a[j-1];
           a[j-1]=temp;
        }
        m_time++;
      }
    }
    Date d2=new Date();
    long d=d2.getTime()-d1.getTime();
    System.out.println("用冒泡法排序后的数组为:");
    for(int i=1;i<a.length;i++)
    {
    	System.out.print(a[i]+" ");
    }
    System.out.println();
		System.out.print("所用时间为: "+d+"毫秒");
		System.out.println();
		System.out.print("比较次数为: "+m_time);
	}
	
  
	public static void main(String[] args)
	{
		if(args.length<2)//判断输入参数的个数
		{
			System.out.println("输入的参数个数必须大于2");
		}
		
		int a[]=new int[args.length],p;
		for(p=1;p<args.length;p++)
		{
		  a[p]=Integer.parseInt(args[p]);
		}
		Sort mb=new Sort();
		int b=Integer.parseInt(args[0]);
		mb.SortOfBefore(a);
		if(b==1)//判断用哪个排序方法来排序(1是选择排序,2是插入排序,3是冒泡排序,其他输入为错误输入)
		{
			mb.SelectionSort(a);
		}
		else if(b==2)
		{
			mb.InsertionSort(a);
		}
		else if(b==3)
		{
			mb.BubbleSort(a);
		}
		else 
		{
			System.out.print("输入错误!");
		}
	}
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -