论坛首页 招聘求职论坛

常用简单排序算法汇总:冒泡+选择+插入

浏览 3401 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-09-13  

简单排序算法是我们学习数据结构首先接触到的,也是企业面试易考的。重温一下

 

class ArraySort{
	private long[]a;      //封装long类型数组a[]
	private int nElems;   //数据量

	public ArraySort(int max){  //构造
		a=new long[max];     //创建一个数组
		nElems=0;            //初始为空
	}

	//将元素添加到数组中
	public void insert(long value){
		a[nElems]=value;
		nElems++;
	}

	//显示数组内容
	public void display(){
		for(int j=0;j<nElems;j++)   //显示每个元素
			System.out.print(a[j]+" ");   //打印数据
		System.out.println(" ");
	}

  //swap方法交换(最好写到程序内部,减少调用)
	private void swap(int one,int two){
		long temp=a[one];
		a[one]=a[two];
		a[two]=temp;
	}



	//冒泡排序主代码   
	public void bubbleSort(){   
	  int out, in;  	    
		for (out=nElems-1;out>1;out--){//外循环,找到需要比较的最后的位置   
		  for(in=0;in<out;in++){       //内循环,比较outer前面的书籍    
		    if(a[in]>a[in+1]){         //比较大小,将大数据排在后面   
		     swap(in,in+1);   
		    }   
		  }   
	  }
  }   

	//选择排序主代码
	public void selectionSort(){
		int out, in,min;	
		
		for (out=0; out<nElems-1;out++){     //外循环,从最左端开始放			
				min=out;                         //第一个默认为最小                           
			for(in=out+1;in<nElems;in++)       //内循环
			   if(a[in]<a[min])
			      min=in;
			swap(out,min);
		}		
	}
	
	//插入排序主代码
	public void insertionSort(){
		int out, in;			
		for (out=1; out<nElems;out++){     //外循环,从最左端开始放			
			long	temp=a[out];
			in = out;
			while(in>0&&a[in-1]>=temp){
				a[in]=a[in-1];
				--in;
			}                                                 
			a[in]=temp;               //插入标记项			
		}		
	}
	

}


class Sort{
	public static void main(String[] args){
		int maxSize=100;        //数组大小
		ArraySort arr;           //涉及到的数组
		arr=new ArraySort(maxSize); //创建数组
		//向数组添加数据
		arr.insert(77);
  	arr.insert(42);
  	arr.insert(85);
  	arr.insert(12);
  	arr.insert(69);  
    arr.insert(98);
    arr.insert(23);
    
    //数组打印
    arr.display(); 
    
    
    //将数组中数据排序
    System.out.println("冒泡排序算法结果");
    arr.bubbleSort();
    arr.display();
    
    System.out.println("选择排序算法结果");
    arr.selectionSort();  
    arr.display();
    
    System.out.println("插入排序算法结果");
    arr.insertionSort();
    arr.display();
    
    
    
    
  }
	
}  


 

论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics