冒泡排序代码实现

冒泡排序代码实现

1.手写冒泡

    		//遍历数组中每一个元素
    		for(int i=0;i<arr.length;i++){
    			//每遍历完一个元素,就会确定出当前遍历这个数组长度中一个最值,下一次遍历就不需要考虑
    			for(int j=0;j<arr.length-1-i;j++){
    				//如果前一个数比后一个数大,我们就跟这两个元素做值交换
	    			if(arr[i]>arr[i+1]){
	    				int s=arr[i];
	    				arr[i]=arr[i+1];
	    				arr[i+1]=s;
	    			}
	    		}
    		}
    		//至此循环结束,我们得到一个正序排序的数组

2.递归冒泡

public static int[] fun(int[] arr,int length){
		//得到一个乱序的数组以及要便利的范围
		for(int i=0;i<length-1;i++){
			//如果前一个数比后一个数大,我们就跟这两个元素做值交换
			if(arr[i]>arr[i+1]){
				int s=arr[i];
				arr[i]=arr[i+1];
				arr[i+1]=s;
			}
		}
		//当length为1的时候说明遍历已经结束,直接返回结果
		if(length==1){
			return arr;
		}
		//进行下一次遍历,此时已经确定最后一个值为当前遍历这个数组长度中一个最值,下次循环不予考虑
		return fun(arr,length-1);
	}

猜你喜欢

转载自blog.csdn.net/sinat_42338962/article/details/84333988