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

冒泡排序

时间:2024-07-22 15:28:45浏览次数:13  
标签:sort int 冒泡排序 static ints array public

冒泡排序

两层循环,外层冒泡轮数,内层依次比较。

时间复杂度O(n2),代码量小,效率较低,小数据好用。

public static void main(String[] args) {
        int[] ints = {1,24,53,42,5};
        int[] sort = sort(ints);
        System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] array){
    //临时变量
    int temp = 0;
    //外层循环,判断我们这个要走多少次;
    for (int i = 0; i < array.length-1; i++) {
        //内层循环,比价判断两个数,如果第一个数,比第二个数大,则交换位置
        for (int j = 0; j < array. length-1-i ; j++) {
            if (array[j+1]<array[j]){
                temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
            }
        }
    }
	return array;
}

优化:设置flag,在某一轮冒泡中,未出现交换,则直接结束循环。

public static void main(String[] args) {
        int[] ints = {1,24,53,42,5};
        int[] sort = sort(ints);
        System.out.println(Arrays.toString(sort));
}
//增加了flag优化
public static int[] sort(int[] array){
    //临时变量
    int temp = 0;
    //外层循环,判断我们这个要走多少次;
    for (int i = 0; i < array.length-1; i++) {
        boolean flag=false;//通过fLag标识位减少没有意义的比较
        //内层循环,比价判断两个数,如果第一个数,比第二个数大,则交换位置
        for (int j = 0; j < array. length-1-i ; j++) {
            if (array[j+1]<array[j]){
                temp = array[j];
                array[j] = array[j+1];
                array[j+1] = temp;
                flag = true;
            }
        }
        if (flag == false){
        	break;
        }
    }
	return array;
}

标签:sort,int,冒泡排序,static,ints,array,public
From: https://www.cnblogs.com/CLB-BB/p/18316095

相关文章

  • 从零开始学Java(超详细韩顺平老师笔记梳理)05——数组(语法,赋值机制,拷贝反转)、排序(冒泡排
    文章目录前言一、数组1.基础语法1)介绍2)使用(动态、静态初始化语法与使用)3)注意事项和细节2.数组赋值机制(ArryAssign)3.数组拷贝4.数组反转(reserve)5.数组的扩容与缩减二、排序三、查找四、二维数组(TwoDimensionalArry)1.快速入门2.使用3.案例:打印一个10行的......
  • 冒泡排序算法
    冒泡排序算法点击查看代码/*冒泡排序,英语:BubbleSort,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序,如:从大到小、首字母从A到Z。错误就把他们交换过来。*/#include<stdio.h>voidbubble_sort(intarr[],intlen);intmain(){......
  • 【C语言】全面解析冒泡排序
    文章目录什么是冒泡排序?冒泡排序的基本实现代码解释冒泡排序的优化冒泡排序的性能分析冒泡排序的实际应用结论在C语言编程中,排序算法是一个非常基础且重要的概念。冒泡排序作为最简单、最易理解的排序算法之一,广泛应用于各种编程教学和实践中。本文将全面解析C语......
  • java数组之冒泡排序、快速排序
    一、排序算法概述1.算法定义排序:假设含有n个记录的序列为{R1,R2,...,Rn},其相应的关键字序列为{K1,K2,...,Kn}。将这些记录重新排序为{Ri1,Ri2,...,Rin},使得相应的关键字值满足条Ki1<=Ki2<=...<=Kin,这样的一种操作称为排序。通常来说,排序的目的是快速查找。2.衡量排序算......
  • js 实现冒泡排序算法
    冒泡排序是一种简单的排序算法。它重复地遍历待排序的列表,比较相邻的元素并交换位置,如果它们的顺序错误。这个过程会重复进行,直到整个列表排序完成。下面是用JavaScript实现的冒泡排序算法:functionbubbleSort(arr){letn=arr.length;letswapped;do{......
  • 经典再现,回顾常见排序算法之冒泡排序,附Java源码及优化改进实现
    回顾一下排序算法,老酒装新瓶,给自己的技能点做个回放。排序(Sorting)是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个有序的序列,也可以理解为高矮个站队。衡量排序算法的两个指标,时间复杂度和稳定性。举个例子,如果我们的数据......
  • C++冒泡排序(使用vector动态数组)
    #include<iostream>#include<vector>usingnamespacestd;voidsort(vector<int>&a){  constintsize=a.size();  inttemp;  intflag=1;  while(flag==1)  {  flag=0;  for(inti=0;i<size;++i)  {   if(a[i]>......
  • 冒泡排序---qsort函数
    1.一般冒泡排序的方法首先来看一般的冒泡排序的写法,这种方法只能排序整型类型的数据代码如下:voidbubble_sort(intarr[],intsz){ inti=0; for(i=0;i<sz-1;i++) //排序的次数是sz-1次 { intj=0; for(j=0;j<sz-1-i;j++) //每一次排序过......
  • python-冒泡排序
    冒泡排序1.功能实现1.1发现问题2.算法优化12.1发现问题3.算法优化21.功能实现"""冒泡排序 概述: 是一种交换排序,相邻两个数比较,如果前面的数比后面的数大,就交换位置(由小到大排序时) 简介: 在冒泡排序过程中,每一轮比较出一个最大的数放在......
  • DAY 1 数据结构与算法 (选择排序,冒泡排序,插入排序)
    1.选择排序        选择排序(SelectionSort)是一种简单直观的排序算法。其基本思想是每一次从待排序的数据元素中选择最小(或最大)的一个元素,放在已排好序的元素序列的末尾,直到全部待排序的数据元素排好序为止。即每一次设定一个数为最大或者最小值,然后与其他的数进行交......