冒泡排序
将需要排序的列表,从第一位开始,每相临两个元素比较,如果某一位大于(或小于)他的下一位,则交换两个元素位置,直至不能交换。
这种排序的平均时间复杂度是平方级的,效率不高,容易实现。
/** * BubbleSort.java * * @author xieyan * @date 2013/06/20 * @version 1.0 */ package sort; /** * BubbleSort.java */ public class BubbleSort { /* * 冒泡排序: * 将需要排序的列表,从第一位开始,每相临两个元素比较,如果某一位大于(或小于)他的下一位,则交换两个元素位置。 * 直至不能交换。 * * 这种排序的平均时间复杂度是平方级的,效率不高,容易实现 */ /** * bubbleSortAsc * * <PRE> * 升序 * </PRE> * * @param arr */ public static int[] bubbleSortAsc(int[] arr) { if(arr == null) { return null; } int temp = 0; for (int i = arr.length - 1; i > -1; i--) { for(int j = 0; j < i; j++) { if(arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; } /** * bubbleSortDesc * * <PRE> * 降序 * </PRE> * * @param arr */ public static int[] bubbleSortDesc(int[] arr) { if(arr == null) { return null; } int temp = 0; for (int i = arr.length - 1; i > -1; i--) { for(int j = 0; j < i; j++) { if(arr[j] < arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; } public static void main(String[] args) { int[] a = new int[] { 5, 7, 8, 3, 4, 2, 9, 1, 6 }; int[] b = bubbleSortAsc(a); for (int i = 0; i < b.length; i++) { System.out.println(b[i]); } b = bubbleSortDesc(a); for (int i = 0; i < b.length; i++) { System.out.println(b[i]); } } }
相关推荐
冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的...
冒泡排序是一种基础且经典的计算机科学排序算法,尤其在C++编程中常见。它通过不断地比较相邻元素并根据需要进行交换,逐步将较大的元素“冒泡”到序列的末尾,从而实现升序排列。这一过程可以理解为一个逐层推进的...
冒泡排序是一种简单的排序算法,它重复地遍历待排序的列表,比较每对相邻元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行直到没有再需要交换,也就是说该列表已经排序完成。这个算法的名字由来...
Java排序算法之冒泡排序详解 冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置。这个过程持续对数列的末尾进行,直到整个数列都排序完成...
冒泡排序算法是一种简单的排序算法,它的工作原理是通过不断地比较相邻元素,并交换它们以达到排序的目的。冒泡排序算法的时间复杂度为O(n^2),因此它适合小规模的数据排序。 2.选择排序算法 选择排序算法也是一种...
冒泡排序是一种基础且历史悠久的排序算法,它通过重复遍历待排序的序列,比较相邻元素并根据需要交换它们的位置,来逐步将序列中的大值“冒”到序列的末尾。在C#中实现冒泡排序,可以深入了解C#的基础语法、控制流...
经典排序算法 - 冒泡排序Bubble sort 经典排序算法 - 选择排序Selection sort 经典排序算法 - 鸡尾酒排序Cocktail sort 经典排序算法 - 希尔排序Shell sort 经典排序算法 - 堆排序Heap sort序 经典排序算法 - ...
冒泡排序是一种简单的排序算法,通过重复遍历列表,比较每对相邻元素,并在需要时交换它们的位置。这个过程会重复进行,直到没有更多的交换需要进行。 代码的执行流程如下: 1.l0 是一个包含整数的列表 [10, 50, ...
冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法,其工作原理是通过重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列...
1. **冒泡排序**:冒泡排序是一种简单直观的排序算法,通过不断交换相邻的错误顺序元素来逐步完成排序。它重复地走访过要排序的元素,依次比较每一对相邻元素,如果它们的顺序错误就把它们交换过来。走访元素的工作...
冒泡排序是一种简单的排序算法,其基本思想是通过重复地遍历要排序的列表,比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行的,直到没有再需要交换的元素,也就是说该列表已经...
冒泡排序是一种基础且经典的排序算法,其工作原理是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序(如从小到大、从大到小)错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也...
此文件为数据结构中的九种排序算法,包含一些排序方法的过程,其九种排序包括:直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,基数排序!
本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...
本篇文章主要探讨了如何在VC++环境中利用多线程技术来实现三种经典的排序算法:冒泡排序、快速排序和归并排序,并对它们的性能进行了比较。 首先,冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次...
冒泡排序(Bubble Sort)是一种基础的排序算法,适合初学者和少儿编程教学。它通过重复遍历待排序的数列,依次比较相邻元素并交换位置,使较大的元素逐渐“冒”到数列的顶端,从而实现排序。在这个项目中,我们将...
【排序算法概述】 排序算法是计算机科学中至关重要的一部分,它涉及到如何有效地重新排列一组数据,使其按照特定标准(如升序或降序)排列。排序算法的效率对程序的性能有着显著影响,尤其是在处理大量数据时。虽然...
本文将深入探讨标题和描述中提到的一些基本排序算法,包括选择排序、冒泡排序、插入排序、希尔排序、堆排序、快速排序以及归并排序,并结合C++编程语言进行讲解。 1. **选择排序(Selection Sort)** - 选择排序是一...