036 冒泡排序

2024-02-08 20:52
文章标签 冒泡排序 036

本文主要是介绍036 冒泡排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码实践

// 冒泡排序
static void bubbleSort(Comparable[] elements) {// 临时容器,用于变量交换值时存储Object temp;// 标志位 用于减少无意义的循环次数boolean flag;for (int i = 0; i < elements.length - 1; i++) {flag = false;for (int j = 0; j < elements.length - 1 - i; j++) {if (elements[j].compareTo(elements[j + 1]) > 0) {temp = elements[j];elements[j] = elements[j + 1];elements[j + 1] = (Comparable)temp;flag = true;}}// 为false说明已经排好序了,结束多余的循环即可if(flag == false){break;}}
}public static void main(String[] args) {// 准备10个可排序元素Scanner scanner = new Scanner(System.in);String[] arr = new String[10];for (int i = 0; i < arr.length; i++) {System.out.print("请输入第" + (i + 1) + "/" + arr.length + "个可排序元素:");arr[i] = scanner.nextLine();}// 执行冒泡排序bubbleSort(arr);// 输出排序后结果for (Object e : arr) {System.out.println(e);}
}

 

这篇关于036 冒泡排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/692171

相关文章

冒泡排序——基于Java的实现

简介    冒泡排序(Bubble Sort)是一种简单的排序算法,适用于小规模数据集。其基本思想是通过重复遍历待排序的数组,比较相邻的元素并交换它们的位置,以此将较大的元素逐步“冒泡”到数组的末尾。算法的名称源于其运行过程中,较大的元素像水中的大气泡一样逐渐浮到顶部。  排序过程   for (int i = 0; i < num.length - 1; i++) {

BubbleSort(冒泡排序)

平均时间 复杂度 最差时间 复杂度 最佳时间 复杂度 空间复杂度 O(n^2) O(n^2) O(n) O(1) 稳定 public static void bubbleSort( int[] arr ) {if( arr == null | arr.length < 2 ) {return;}for( int j = arr.length - 1; j > 0;

冒泡排序【BubbleSort】

冒泡排序 假设初始的数组是[5,4,7,2] 以从小到大排序为例: 将第0个元素与第一个元素进行比较, 5 > 4, 所以交换位置, 此时[4,5,7,2] 将第1个元素与第二个元素进行比较, 5 < 7, 所以保持,此时[4,5,7,2] 将第2个元素与第三个元素进行比较, 7 > 2, 所以交换位置, 此时[4,5,2,7] 这样就经过了一轮的冒泡,最后一个元素就是最大的元素了。

冒泡排序和鸡尾酒排序(code)

昨天回顾了下冒泡排序和鸡尾酒排序,用面向对象的方式写了一下,并且优化了代码,记录一下~ 一、冒泡排序 # 冒泡排序class BubbleSort(object):def __init__(self, data_list):self.data_list = data_listself.length = len(data_list)# 简单粗暴的排序方式def b_sort(self):d

【408DS算法题】036基础-14年真题_求二叉树的WPL

Index 真题题目分析实现总结 真题题目 二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T ,采用二叉链表存储, 结点结构如下: 其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针, 请设计求T的WPL的算法, 要求: 1 - 给出算法的基本设计思想。 2 - 使用C或C++语言, 给出二叉树结点的数据类型定

冒泡排序算法及其简单优化(基于Java)

冒泡排序算法通过多次比较和交换来实现排序,其流程如下: (1)对数组中的各数据,依次比较相邻两个元素的大小。 (2)如果前面的数据大于后面的数据,就交换这两个数据。通过第一轮的多次比较排序后,便可将最小的数据排好。 (3)再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组的各数据。 所谓“冒泡”,就是大数沉下去(数组的底部),小数相应的浮上来(数组的顶部)。

Java基础07 数组算法(顺序查找、冒泡排序、选择排序、二分查找)

超详细的Java知识点路线图 前言 知道了怎么使用数组后,还需要结合数组和前面的知识,解决某些实际的问题。 本文我们将学习数组的常用算法:求最大值、顺序查找、二分查找、冒泡排序、选择排序。 如果能掌握这些算法,那么大家的编程能力会得到很大增强哦。 求最大值 给定一个数组,求出所有数据中最大(最小)的数据 算法描述: 定义最大值变量,将数组中第一个数据赋值给最大值从数组的第二个数据开始

android 算法可视化(1) --冒泡排序可视化实现

前言 以前写了很多算法相关的博客,每篇博客都会用word或者processing画上很多图,非常浪费时间,那时候就一直有考虑能不能使用程序来实现这种过程,不仅不用自己画那么图,而且编程实现可视化的话,还可以动态更清晰的表现算法的过程。于是查找了相关的资料和自己对算法的理解先实现一个冒泡排序的可视化,代码是Android的。 效果 实现 要实现这个动画效果,实际上需要两个基本的模块组成:

冒泡排序;选择排序;插入排序;快排;判断大小端;位运算

1.冒泡排序:基础        时间复杂度来说:o(n^2) 从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 #include <stdio.h>int main(void){int str[32] = 0;int i = 0;int j = 0;int len = sizeof(str) / sizeof(str[0]);

static_隐式参数_继承_重写_toString_组合JAVA036-042

来源:http://www.bjsxt.com/ 1、S01E036_01static变量和方法 static变量和方法存放在方法区中 2、S01E037_01隐式参数this和super 类的构造方法调用自己的无参构造方法this()或有参构造方法this(a[,b…]):必须位于第一行 3、S01E038_01面向对象的三大特征(继承、封装、多态)之一:继承(extends)