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

冒泡排序!!!!!

时间:2023-11-28 22:55:19浏览次数:38  
标签:sort int 冒泡排序 array 排序 public

package array;

import java.util.Arrays;

public class ArrayDemo07 {
    public static void main(String[] args) {
        int [] a = {1,4,5,6,72,2,2,2,25,6,7};
        int[] sort = sort(a);//调用完我们自己写的排序方法以后,返回一个排序后的数组
        System.out.println(Arrays.toString(sort));

    }
     public static int[] sort(int [] array){
        int temp = 0;  //临时变量
         for (int i = 0; i < array.length-1; i++) {//外层循环,判断循环走多少次;这个可以不减1

             boolean flag = false;//通过flag标志位减少没有意义的比较
             for (int j = 0; j < array.length-1-i; j++) {//这个必须减1
                 if(array[j+1]>array[j]){/*
                     排序:>:从大到小 <:从小到大
                     */
                     temp = array[j];
                     array[j]=array[j+1];
                     array[j+1]= temp;//上边必须减1的原因是这个会出现11

                     flag=true;
                     /**内层循环
                      *1.比较判断两个数,如果第一个数比第二个大则交换位置
                      *2.如果为<=一定要减1,不减1下标会越界 如果为<就无所谓
                      *3.if a=b b=a 说明ab相等 所以要引入第三个临时变量
                      */
                 }
                 if (flag==false) {
                     break;
                 }
             }//16 33 34语句是优化 
             // 如果flag没有变成true,也就是说,任意相邻的两个数,左边的数小于右边,
             // 这时整个数组已经是有序的状态了,所以就不用再进行比较了,就可以break跳出循环了

         }
         return array;
         /**冒泡排序
          * 1.比较数组中两个相邻的元素的大小 如果第一个的数比第二个大就交换位置
          * 2.每一次比较都会产生出一个最大,或者最小的数字
          * 3.下一次可以少一次排序
          * 4.依次循环,直到结束!
          */

     }
}

 

标签:sort,int,冒泡排序,array,排序,public
From: https://www.cnblogs.com/123456HHH/p/17863342.html

相关文章

  • 冒泡排序:要比较(二层循环)n*(n-1)(第一层循环)次,最大的在最后,最次大的在倒数第二,
    privatestatic voidsort(int[]w,intl,intr){//冒泡排序要比较n二层循环*(n-1)次,第一层循环      for(inti=r;i>l;i--){        for(intj=l;j<i;j++){          if(w[j]>w[j+1])          { ......
  • 排序算法之冒泡排序优化2
    一:概述对于冒泡排序的优化1中,右边的许多元素已经是有序的了,可是每一轮还是白白地比较多次了。这个问题地关键点在于对数列有序区地界定。按照现有的逻辑,有序区的长度和排序的轮数是相等的。例如第1轮排序过后的有序区长度是1,第2轮排序过后的有序长度是2....实际上,数列真正的有序区......
  • 数组作为函数参数(冒泡排序)
    往往我们在导代码的时候,会将数组作为参数传个函数,比如我们要实现一个冒泡排序:函数讲一个整形数组进行排序(主要讲算法思想)#include<stdio.h>voidbubble_sort(intarr[],intsz){inti=0;//确认冒泡函数的趟数//intsz=sizeof(arr)/sizeof(arr[0]);//注:这里不能在void函......
  • 排序算法之冒泡排序优化1
    一:概述原始的数列{4,8,6,3,9,2,1,7},执行至第6步和第7步时,数列状态如下:很明显的可以看出,经过第6轮排序之后,整个数列已然是有序的了。可是排序算法依然是继续执行第7轮排序。在这种情况下,如果能判断出数列已经有序,并作出标记,那么剩下的几轮就不必执行了,可以提前结束。二:具体代码优化的......
  • 排序算法之冒泡排序1
    一概述在生活中,我们离不开排序。例如在学校站队时,会按照身高顺序进行排队。每一个月考或者期末的成绩都会按照成绩排名次。在编程学习中,我们也会经常遇到排序的问题。这种排序的场景非常多。例如在开发一个学生管理系统时,需要按照学号的顺序从小到大去排列。当开发一个电商平台时,需......
  • 定义二维数组,冒泡排序法
    //#define_CRT_SECURE_NO_WARNINGS1////#include<stdio.h>//#include<stdlib.h>//#include<string.h>//#include<math.h>//voidbubble_sort(intarr[],intsz)//{// inti=0;// for(i=0;i<sz-1;i++)// {// intj=0......
  • 冒泡排序与选择排序
    冒泡排序functionsort(arr){vartemp;for(vari=0;i<arr.length-1;i++){for(varj=0;j<arr.length-1-i;j++){if(arr[j]>arr[j+1]){temp=arr[j+1];arr[j+1]=......
  • JAVA冒泡排序
    //冒泡排序publicclassDemo05{publicstaticvoidmain(String[]args){int[]arr={4,1,5,2,3};for(inti=0;i<arr.length-1;i++){//外循环:控制比较轮数(数组长度-1)i:0,1,2,3for(intj=0;j<arr.length-1......
  • Python冒泡排序算法
    冒泡排序算法是一种简单的排序算法,其基本思想是通过多次遍历数组,比较相邻的两个元素,如果它们的顺序不对则交换。这样一轮遍历之后,最大(或最小)的元素就会被移动到数组的最后,然后再对剩余的元素进行类似的操作,直到整个数组有序defbubble_sort(arr):n=len(arr)#外层循环控制遍历的......
  • 实现冒泡排序算法
    实现冒泡排序算法#include<stdio.h> voidswap(int*xp,int*yp){   inttemp=*xp;   *xp=*yp;   *yp=temp;} voidbubbleSort(intarr[],intn){   for(inti=0;i<n-1;i++){       for(intj=0;j<n-i-1;j++){       ......