首页 > 其他分享 >冒泡排序

冒泡排序

时间:2023-08-01 09:55:57浏览次数:34  
标签:arr temp int 冒泡排序 第一趟 ++ length

  • 第一趟:相邻比较,若 前 > 后, 交换位置,直到最后一个位置为max
  • 第二趟:相邻比较,若 前 > 后, 交换位置,直到倒数第二个位置为max(除最后一个位置)
  • 第n趟:......
    @Test
    public void test1(){
        int[] arr = {7,6,5,4,3,2,1,1};

        int temp;
        //比较趟数。共length - 1趟
        for (int i = 1; i < arr.length; i++) {
            //每趟比较次数 第一趟:6次 length - 1
            for (int j = 0; j < arr.length - i; j++) {
                if (arr[j] > arr[j + 1]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }

        for (int j : arr) {
            System.out.print(j + "  ");
        }
    }

优化

判断是否已经有序?

    @Test
    public void test2() {
        int[] arr = {9,5,4,3,6,7,11,5};

        int temp;
        //比较趟数。共length - 1趟
        for (int i = 1; i < arr.length; i++) {
            //假设是排好序的
            boolean flag = true;
            //每趟比较次数 第一趟:6次 length - 1
            for (int j = 0; j < arr.length - i; j++) {
                if (arr[j] > arr[j + 1]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    //发生了交换,则是未排好序的
                    flag = false;
                }
            }
            if (flag) {
                //说明是排好序的
                break;
            }
        }

        for (int j : arr) {
            System.out.print(j + "  ");
        }
    }

标签:arr,temp,int,冒泡排序,第一趟,++,length
From: https://www.cnblogs.com/9fall/p/17595656.html

相关文章

  • java常见的排序算法(冒泡排序、选择排序、插入排序、shell排序、归并排序、堆排序、快
    文章目录一、冒泡排序1、效率表现和适用范围2、算法实现二、选择排序1、效率表现和适用范围2、算法实现三、插入排序1、效率表现和适用范围2、算法实现四、shell排序1、效率表现和适用范围2、算法实现五、归并排序1、效率表现和适用范围2、算法实现六、快速排序1、效率表现和适用......
  • C#冒泡排序算法
    冒泡排序实现原理冒泡排序是一种简单的排序算法,其原理如下:从待排序的数组的第一个元素开始,依次比较相邻的两个元素。如果前面的元素大于后面的元素(升序排序),则交换这两个元素的位置,使较大的元素“冒泡”到右侧。继续比较下一对相邻元素,重复步骤2,直到遍历到数组的倒数第二......
  • 冒泡排序
    #include<stdio.h>voidbubble_sort(intarr[],intsz){ inti=0; for(i=0;i<sz-1;i++) { intj=0; for(j=0;j<sz-1-i;j++) { if(arr[j]>arr[j+1]) { inttmp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=tmp; } } }}intmain()......
  • P8859 冒泡排序
    我回来了。参考:https://www.luogu.com.cn/blog/_post/509374、https://www.luogu.com.cn/blog/_post/510710。考虑type1,注意到\(1\)是不能被超越的,且一个数操作多次不优,因此第一步操作\(1\)不劣。因此从小到大归位每个数不劣,答案即为总数减去前缀\(\max\)的数目。从小到......
  • 2023.7.19 周三:冒泡排序
    1importjava.sql.SQLOutput;2importjava.util.Arrays;3importjava.util.Scanner;4//冒泡排序5publicclasstest{6publicstaticvoidmain(String[]args){7int[]a={5,4,6,8,9,1,7,2,3};8intarray[]=sort(a);9S......
  • 一维数组之冒泡排序
    从b站上黑马程序员的C++课里学到的冒泡排序 1#include<iostream>2usingnamespacestd;3intmain()4{5intarr[6]={2,4,1,6,7,3};6for(inti=0;i<6;i++)//数组遍历7{8cout<<arr[i]<<"";9}1......
  • PHP实现冒泡排序
    冒泡排序的原理:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有......
  • 冒泡排序
    #冒泡最大的在最后面#冒泡最大的在后面lis=[4,3,2,1]forjinrange(len(lis)-1):#外循环了len-1次flag=False#添加标记没有交换foriinrange(len(lis)-1):#内循环后找到本次最大的放到了最后iflis[i]>lis[i+1]:lis[i]......
  • 【基础算法】八大排序算法:直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序(快排)
    ✔️前言......
  • 【前端教程03】for循环冒泡排序、去重、查找重复元素
    //升序constbubbleSort=(arr)=>{for(leti=0;i<arr.length;i++){for(letj=0;j<arr.length-i;j++){if(arr[j]>arr[j+1]){lettmp=arr[j];arr[j]=arr[j+1];arr[j+1]=tmp;......