排序—冒泡排序(Java)

算法描述:

① 比较相邻的元素。如果前面元素大于后面元素,就交换他们两个。

② 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。第一趟下来,最后的元素会是最大的数。

③ 针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。在某一趟的排序中如果没有发生任何数据交换,则可认为已经排好序了。

④ 持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

public class BubbleSort{
    
    //冒泡排序
    public static int[] bubbleSort(int[] arr){
        for(int i=0; i<arr.length-1; i++){
            boolean swapped = false; //用于记录某一趟排序是否发生了数据交换
            for(int j=0; j<arr.length-i-1; j++){
                if(arr[j] > arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                    swapped = true;
                }
            }
            /* 在某一趟的排序中如果没有发生任何数据交换,则可认为该数组已经排好序了 */
            if (!swapped) {
                break;
            }
        }
        return arr;
    }
    
    public static void main(String[] args){
        
        System.out.println("=====插入排序=====");
        int[] array = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
        System.out.println("排序之前:");
        for(int i = 0; i < array.length; i++){
            System.out.print(array[i] + " ");
        }
        
        array = bubbleSort(array);
        
        System.out.println("\n");
        System.out.println("排序之后:");
        for(int i = 0; i < array.length; i++){
            System.out.print(array[i] + " ");
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容