冒泡排序以及选择排序代码实现

Posted java小小日记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序以及选择排序代码实现相关的知识,希望对你有一定的参考价值。

冒泡排序 :  比较相邻的元素。

选择排序 :  以某个元素为主,从头至尾扫描序列,找出最值,位置交换


冒泡排序代码实现

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);
    	}

选择排序代码实现

    // 1. 外层for循环控制选择的轮数
    for(int i=0;i<num.length-1;i++){
        // 2. 内层for循环:控制每轮比较的次数
        for(int j=i+1;j<num.length;j++){
            if(num[i]>num[j]){
                int temp = num[i];
                num[i]=num[j];
                num[j]=temp;
            }
        }
    }


以上是关于冒泡排序以及选择排序代码实现的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

四种排序算法实现

直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚

七大排序算法(插排,希尔,选择排序,堆排,冒泡,快排,归并)--图文详解

三大基础排序算法(冒泡排序,选择排序,插入排序)

排序算法学习(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序)