基本概念
冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的值依次为1,2,...10-i。
JAVA算法
package com.xyq.demo;
public class BubbleSort {
public static void sort(int[] data) {
int temp;
for (int i = 0; i < data.length; i++) {
for (int j = data.length - 1; j > i; j--) {
if (data[i] > data[j]) {
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
}
public static void main(String[] args) {
int[] a = { 4, 2, 3, 1, 5 };
sort(a);
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
分享到:
相关推荐
这份"java面试——深圳-银盛支付-Java中级.zip"压缩包文件很可能包含了针对Java中级开发者的一系列面试问题和解答,旨在帮助求职者提升自己的技能,并在面试中脱颖而出。下面,我们将深入探讨一些可能涵盖的Java中级...
下面将根据"java面试——深圳-中国平安-Java中级.pdf"这份资料,提炼出一些核心的Java知识点。 1. **Java基础**: - **数据类型**:包括基本数据类型和引用数据类型,理解它们的区别和内存管理。 - **类与对象**...
这份压缩包文件"java面试——上海-拼多多-Java高级.zip"包含了针对Java高级开发人员的面试问题和解答,帮助应聘者准备面试。以下是根据标题、描述和标签提炼出的一些核心Java知识点,这些内容通常会在拼多多的面试中...
- 排序算法:冒泡、选择、插入、快速、归并等排序的实现与比较。 - 查找算法:二分查找、哈希查找等。 - 树结构:二叉树、平衡树(AVL、红黑树)的操作。 - 链表:单链表、双链表、环形链表的操作。 9. **JVM**...
14. **算法与数据结构**:虽然不是Java语言本身的内容,但面试中常常会涉及到,例如排序算法(冒泡、插入、选择、快速、归并等)、查找算法、树结构(二叉树、AVL树、红黑树等)和图算法。 15. **Java新特性**:...
- **冒泡排序**: 通过重复遍历待排序序列,比较相邻元素并交换,最终达到排序的目的。 - **快速排序**: 选择一个基准元素,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有...
这个"Java面试特别包"包含两本重要的学习资料——"java面试宝典2011"和"java面试经典125题",以及可能的面试实录,旨在帮助求职者充分准备,提升面试通过率。 "java面试宝典2011"可能涵盖了当年Java技术的热点和...
12. **算法与数据结构**:虽然Java面试不一定直接考算法,但良好的算法基础是必不可少的,如排序(冒泡、插入、选择、快速、归并)、查找(二分查找)、递归、图论等。 通过学习和理解这些知识点,Java程序员不仅...
这种特性主要得益于 Java 字节码(Bytecode)及其运行环境——Java 虚拟机(JVM)。 - **编译过程**:Java 源代码首先被编译成与平台无关的字节码文件(.class 文件),而不是直接转换为机器码。 - **JVM的作用**:...
10. **算法与数据结构**:虽然Java面试更偏重于实际应用,但基础的算法和数据结构知识依然重要,例如排序算法(冒泡、选择、插入、快速、归并)、查找算法(二分查找、哈希查找)、链表、树、栈、队列、图等。...
"JAVA面试——葵花宝典and九阴真经"这个压缩包显然提供了这样一份宝贵的资源,旨在帮助新手程序员更好地准备面试,提升求职成功率。 葵花宝典通常象征着绝世秘籍,这里可能包含了Java面试中必备的基础知识点和技巧...
12. **算法与数据结构**:虽然Java面试中算法的比重可能不如某些编程语言高,但基本的排序算法(冒泡、选择、插入、快速、归并等)、查找算法、图论、树结构等仍然非常重要。 13. **编程规范**:良好的编码习惯,...
例如,`Sort.java`可能包含了各种排序算法的实现,如冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等。每种排序算法都有其特定的时间复杂性和适用场景,通过阅读源码可以加深对它们的理解。 此外,...
2. **算法与数据结构**:链表、数组、栈、队列、树(二叉树、平衡树如AVL和红黑树)、图、排序(快速排序、归并排序、冒泡排序等)和查找算法(二分查找、哈希查找)是面试中的常见考点。理解其原理、复杂度分析以及...
以下是对给定的三个部分——"JAVA面试题集基础篇"、"JAVA面试题集高级篇"、"JAVA面试题集编程篇"的详细解析。 **JAVA面试题集基础篇** 基础篇主要关注Java语法和核心概念。这部分可能会包含以下几个方面的知识点:...
示例代码使用了冒泡排序算法,这是一种简单的排序算法,通过不断交换相邻的逆序元素逐步达到排序目的。冒泡排序的时间复杂度为O(n^2),适用于小规模或者部分有序的数组。在给出的代码中,`sort()`方法实现了冒泡...
文章可能涵盖了如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等多种经典的排序算法,并且通过Java代码进行了详尽的解释和实现。 1. 冒泡排序:这是一种简单的排序方法,通过重复遍历数组,比较相邻...
1. **数据结构与算法**:面试中常问的排序算法(冒泡、插入、选择、快速等)、查找算法(二分查找、哈希查找)及其复杂度分析。 2. **JVM原理**:理解内存模型(堆、栈、方法区等),垃圾回收机制,类加载过程等。 3...
在面试中,可能会要求手写一个基本的排序算法,如冒泡排序或选择排序,以此来评估应聘者对排序算法原理的理解。例如,冒泡排序的基本思路是从第一个元素开始,比较相邻元素,并交换位置直到整个数组排序完成。 ####...
13. **算法与数据结构**:虽然不是Java语言本身的内容,但在面试中常被考察,如排序算法(冒泡、快速、归并等)、查找算法(二分查找、哈希查找等)。 这些知识点在压缩包内的“Java程序员面试宝典.pdf”、“22_...