/*
* 冒泡排序法
* 算法:第1趟排序找出对数组(array[0]--array[length-1])中最大的一个,把它放大array[length-1]
* 第2趟排序找出对数组(array[0]--array[length-2])中最大的一个,把它放大array[length-2]
* ......
* 第n趟排序找出对数组(array[0]--array[length-n])中最大的一个,把它放大array[length-n]
*/
@Test
public void testBubbleSort() {
//初始化数组
int[] lastArray = initArray;
//外层循环lastArray.length-1次循环
for(int i=lastArray.length-1; i>0; i--) {
//外层循环i次循环
for(int j=0; j<i; j++) {
//当前面的数据大于后面的数据,把两个数据进行交换
if(lastArray[j] > lastArray[j+1]) {
int tempInt = lastArray[j];
lastArray[j] = lastArray[j+1];
lastArray[j+1] = tempInt;
}
}
}
System.out.println(Arrays.toString(lastArray));
}
//选择排序和冒泡基本算法差不多,也是外层循环进行n次,在内部循环是每次都把最大的数据换到本次循环的最后面
//比如第一次把最大的换到第n个,第2次换到第n-1上
@Test
public void testSelectSort() {
//初始化数组
int[] lastArray = initArray;
//外层循环lastArray.length-1次循环
for(int i=0; i<lastArray.length; i++) {
for(int j=0; j<lastArray.length-1-i; j++) {
//当第j个数据大于本次循环的最后一个数据时把两个数据进行交换
if(lastArray[lastArray.length-1-i] < lastArray[j]) {
int tempInt = lastArray[j];
lastArray[j] = lastArray[lastArray.length-1-i];
lastArray[lastArray.length-1-i] = tempInt;
}
}
}
System.out.println(Arrays.toString(lastArray));
}
分享到:
- 2008-12-26 11:32
- 浏览 931
- 评论(1)
- 论坛回复 / 浏览 (0 / 1917)
- 查看更多
相关推荐
冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的...
冒泡排序是一种基础且经典的排序算法,它的基本思想是通过不断地交换相邻的逆序元素,使得每一轮排序后,最大的元素“浮”到数组的末尾。这个过程就像水底下的气泡逐渐升至水面一样,因此得名“冒泡排序”。 在Java...
双冒泡排序算法是一种高效的排序算法,它的工作原理是通过将数组分为两个部分,然后将每个部分排序,以达到排序的目的。双冒泡排序算法的时间复杂度为O(n log n),因此它适合大规模的数据排序。 13. Cocktail排序...
首先,冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。尽管冒泡...
合并排序是基于分治策略的排序算法,它将数据分成两半,分别排序,然后合并两个已排序的子序列。由于采用了递归,其时间复杂度为O(n log n)。在处理大规模数据时,合并排序具有良好的性能。 **5. 快速排序(Quick ...
下面将详细介绍这三个排序算法的工作原理、特点以及代码实现。 1. **插入排序(Insertion Sort)** - 插入排序是一种简单直观的排序算法,它的工作原理类似于我们日常整理扑克牌的过程。初始时,数组可以看作是未...
本主题将详细探讨四种常见的排序算法:选择排序、插入排序、快速排序以及冒泡排序,它们都是用C语言实现的。以下是这些排序算法的详细解析: 1. **选择排序(Selection Sort)** - 选择排序是一种简单直观的排序...
冒泡排序是一种基础且经典的计算机科学排序算法,尤其在C++编程中常见。它通过不断地比较相邻元素并根据需要进行交换,逐步将较大的元素“冒泡”到序列的末尾,从而实现升序排列。这一过程可以理解为一个逐层推进的...
4. **比较与交换**:在内层循环中,我们使用 `IF Array[j] > Array[j+1] THEN` 判断当前元素是否大于下一个元素,如果是,就交换这两个元素的位置,这一步可以通过临时变量实现。 5. **结束条件**:在多次迭代后,...
根据给定的信息,本文将详细解释C#中的几种基本排序算法:选择排序、冒泡排序、快速排序、插入排序、希尔排序以及归并排序的基本原理和实现方式。 ### 一、选择排序(Selection Sort) #### 算法原理 选择排序是一...
首先,让我们从标签提及的两个经典排序算法开始:冒泡排序和折半排序。 1. **冒泡排序**:冒泡排序是一种简单直观的排序算法,通过不断交换相邻的错误顺序元素来逐步完成排序。它重复地走访过要排序的元素,依次...
冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置。这个过程持续对数列的末尾进行,直到整个数列都排序完成。 冒泡排序的工作原理是通过...
本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
冒泡排序是一种简单的排序算法,其基本思想是通过重复地遍历要排序的列表,比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行的,直到没有再需要交换的元素,也就是说该列表已经...
冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这...
本资源包含了多种经典的排序算法实现,包括选择排序、冒泡排序、希尔排序、插入排序和归并排序。下面将详细介绍这些排序算法及其原理。 1. **选择排序(Selection Sort)** - **基本思想**:每次遍历数组,找到...
冒泡排序作为一种简单的排序算法,从诞生之初就因其直观性和易实现性被广泛用于计算机科学和编程教学之中。其核心思想在于通过一系列的比较和交换操作,逐步将无序数组中的元素按顺序排列。尽管在处理大数据集时效率...
冒泡排序是一种简单的排序算法,通过重复遍历列表,比较每对相邻元素,并在需要时交换它们的位置。这个过程会重复进行,直到没有更多的交换需要进行。 代码的执行流程如下: 1.l0 是一个包含整数的列表 [10, 50, ...
冒泡排序是一种基础且经典的排序算法,它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序(如从小到大、从大到小)错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,...
冒泡排序是一种基础且经典的排序算法,其工作原理是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序(如从小到大、从大到小)错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也...