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

📄 foursort.java

📁 计算机算法程序
💻 JAVA
字号:
package liu;

import java.util.Random;

import javax.swing.JOptionPane;

public class FourSort {
    private static int[] a;//存放数的数组
    private static int size;//数组大小
    public FourSort(int size) //初始化数组的值
    {   a = new int[size];
    	Random rand = new Random();
    	System.out.println("生成的数有:");
    	for(int i = 0;i < size - 1;i++)
    	{	
    		a[i] = rand.nextInt(100)+ 1;//随机产生数组的数
    	    System.out.print(a[i]+" - ");
    	}
    	a[size - 1] = rand.nextInt(100) + 1;
    	System.out.println(a[size - 1]);
    }
	public void MaopaoSort(int[] a,int size)  //冒泡排序
	{ 
		int temp,k = 0;//temp存放临时变量,k存放交换标志
		for(int i = 1;i < size ;i++)
		{	k = 0;
			for(int j = 0;j < size - i;j++)
			{ 
				if(a[j]>a[j + 1])   //如果当前节点比后一个节点大,则交换
				{ 
					temp = a[j];
					a[j] = a[j + 1];
					a[j + 1] = temp;
					k = 1;   //交换标志为1
				}
			}
			if(k ==0) break;  //若无交换,就退出
		}
	}
	public void InsertSort(int[] a,int size,int dk)//插入排序
	{ 
		int temp,k;
		for(int i = dk;i < size;i++)
		{  
	         temp = a[i];		
		     k = i;
	         while(temp < a[k-dk]) //temp和前面的元素比较
			 { 
		         a[k] = a[k-dk];//若小则把前面元素后移一个单位
			     k = k -dk;	
			     if(k <= dk - 1) { break;}
			 }
			a[k] = temp; //把temp放入合适位置 
		}
	}
	public void ChooseSort(int[]a,int size)//选择排序
	{ 
		int min,k;
		for(int i = 0;i < size - 1;i++)
		{
			k = i;
			min = a[i];
			for(int j = i + 1;j < size;j++) //找个最小的元素
			{ 
				if(a[j] < min) { min=a[j];k = j;}
			}
			if(k!=i) {a[k]=a[i];a[i]=min;}
		}	
	}
	public void ShellSort(int[] a,int size) //希尔排序
	{ 
		int dk = size/2;
		while(dk>=1)
		{ 
			InsertSort(a,size,dk);//调用插入函数
			dk = dk/2; //设定dk的值
		}
	}	
	public void Print() //打印排序后的数组
	{ 
		System.out.println("排序后的数据为:");
		for(int i = 0;i < size - 1;i++)
			System.out.print(a[i]+" - ");
		System.out.print(a[size - 1]);
	}
    public static void main(String[] args) {
		// TODO Auto-generated method stub
       int chose;//保存选择餐宿
       String s1 = JOptionPane.showInputDialog("chose the method of sort:\n1.select \n2.maopao \n3.insert \n4.shell");		
  	   chose  = Integer.parseInt(s1); //选择方法
       String s = JOptionPane.showInputDialog("Please input the numble of array:");		
 	   size  = Integer.parseInt(s); //输入节点个数
 	   FourSort shu = new FourSort(size);
 	   switch(chose)
 	   { 
 	       case 1:shu.ChooseSort(a,size);break;
 	       case 2:shu.MaopaoSort(a, size);break;
 	       case 3:shu.InsertSort(a, size, 1);break;
 	       default:shu.ShellSort(a, size);break;
 	   }
       shu.Print();
	}

}

⌨️ 快捷键说明

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