Java sorting algorithm integration

Several sorting algorithms learned by Xiaobai, record them for review

1. Select Sort
   public static void XuanZhe() {
    
    
    	int min,i;
    	for(i=0;i<a.length-1;i++)
    	{
    
    	min=i;                     //把选择的每一个都看作最小,然后跟后面的每一个比较,
    	for(int j=i+1;j<a.length;j++)
    		if(a[min]>a[j])
    			min=j;                 //小的就倒换一下下标,最后的下标就是最小的
    	
    	int temp = a[i];               //把找到的最小的数与第i个互换
    	a[i] = a[min];
    	a[min] =temp;
    	}
    }
2. Bubble sort
    public static void MaoPao() {
    
    
    	for(int i=0;i<a.length-1;i++)        //总共比较n-1次
    		for(int j=0;j<a.length-i-1;j++)  //每一次都从0开始向右找到倒数第i个数
    			if(a[j]<a[j+1])
    			{
    
    	int temp = a[j];
    	            a[j] = a[j+1];
    	            a[j+1] =temp;
    			}			
    }
3. Quick sort
	public static void qsort(int l,int r) {
    
    
		if(l>r)return;             //退出递归的出口
		int i = l;    
		int j = r;
		int mid=(l+r)/2;        
		int tmp = a[mid];          //把中间的数拿掉
		a[mid]=a[i];               //把第一个数放在中间
		while(i<j) {
    
    
			while(i<j && a[j]>=tmp)j--;  //从右边开始循环到一个比中间值小的数
			a[i]=a[j];                   //从右边拿数放到左边
			while(i<j && a[i]<=tmp)i++;  //从左边开始循环到一个比中间值大的数
			a[j]=a[i];                   //从左边拿数放到右边
		}
		a[i]=tmp;                        //i现在处于中间位置,把tmp放到中间
		qsort(l,i-1);                    //分成两部分分别递归
		qsort(i+1,r);
	}

Guess you like

Origin blog.csdn.net/weixin_44919936/article/details/109750548
Recommended