现有如下六人,身高如下:
//张三(161) 、李四(168) 、 王二麻子(155) 、 赵六(180) 、孙七(144) 、司马相如(200)
//现要求把这六个人身高排序(从高到矮降序,或者从矮到高升序)
//冒泡排序核心思想:
先揪出第一个人张三 让他跟其余的人比较,得出司马相如最高,交换张三、司马位置
//司马相如(200) 李四(168) 王二麻子(155) 赵六(180) 孙七(144) 张三(161)
//第二趟排序,剔除司马,从其余人中选择最高的,结果交换;李四和赵六位置
//司马相如(200) 赵六(180) 王二麻子(155) 李四(168) 孙七(144) 张三(161)
//第三趟排序,剔除司马、赵六,从其余人中选择最高的,结果交换;王二麻子和李四位置
//司马相如(200) 赵六(180) 李四(168) 王二麻子(155) 孙七(144) 张三(161)
//第三趟排序,剔除司马、赵六、李四,从其余人中选择最高的,结果交换;王二麻子和张三位置
//司马相如(200) 赵六(180) 李四(168) 张三(161) 孙七(144) 王二麻子(155)
//第四趟排序,剔除司马、赵六、李四、张三,从其余人中选择最高的,结果交换;王二麻子和孙七位置
//司马相如(200) 赵六(180) 李四(168) 张三(161) 王二麻子(155) 孙七(144)
public static void sort(int[] a) {
int temp = 0;
for (int i = 0; i <=a.length -1; i++) {
for (int j = 0; j < a.length -1; j++) {
if (a[j] < a[j + 1] ) {//如果第一个元素比下一个小
temp = a[j+ 1]; //交换元素位置,下一个先站出来,留个坑A
a[j+ 1] = a[i]; //第一个元素让出位置,占据留出的坑A,留出坑B
a[i] = temp; //最高的元素占据坑B
}
}
//观察打印结果使用
System.out.print("第" + (i + 1) + "次排序结果:");
for (int index = 0; index < a.length; index++) {
System.out.print(a[index]+ "\t");
}
System.out.println("");
}
}
相关推荐
**插入排序与冒泡排序算法详解** 在计算机科学中,排序是数据处理的重要部分,它涉及到将一组数据按照特定顺序排列。插入排序和冒泡排序是两种基础且经典的排序算法,它们都属于简单排序方法,适合小规模或者部分...
基于文件标题和描述的介绍,以下是关于双向冒泡排序算法的C语言实现及其效率分析的知识点。 ### 知识点:双向冒泡排序算法 1. **排序算法分类**:排序算法可按照处理方式不同分为插入类排序、交换类排序和选择类...
- 这是最原始的冒泡排序算法,它通过不断地比较相邻元素并交换位置来完成排序。 - 每一轮遍历,最大的元素会被移动到正确的位置,即序列的末尾。 - 时间复杂度为O(n^2),其中n是序列的长度。 - 空间复杂度为O(1)...
以下是一个简单的Java冒泡排序算法实现: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i ; i++) { // 外层循环控制排序轮数 for ...
内容概要:介绍了冒泡排序的基本概念及其 Python 实现方式,详细解析了其执行过程,并探讨了不同条件下的时间复杂度以及优劣...其他说明:冒泡排序作为典型的教学算法之一,对后续深入研究更加高效的排序方法奠定了基础.
冒泡排序是一种基础且经典的排序算法,主要用于对一组数值进行升序或降序排列。在本章中,我们将深入探讨冒泡排序的概念、工作原理、实现方式以及它在Java编程中的应用。 首先,冒泡排序的基本思想是通过比较相邻...
具体来说,冒泡排序算法可以分为两步:第一步是比较相邻元素,如果它们的顺序不正确,则交换它们;第二步是重复第一步直到整个数组都已经排序。 快速排序是一种高效的排序算法,其时间复杂度为O(n log n),其中n是...
本次实验的核心在于理解并实现冒泡排序算法,分析其在不同数据集上的性能表现,特别关注最小交换次数的计算,这有助于评估算法的效率和优化空间。 **2. 问题描述** 实验中,我们关注的重点是如何利用冒泡排序算法...
本文主要探讨了五种常见的排序算法:插入排序、冒泡排序、堆排序、合并排序和快速排序,并进行了性能分析。通过C语言实现了这五种排序算法,并在相同规模的输入数据上进行比较,以评估它们的性能差异。 **1. 插入...
冒泡排序是一种基础且经典的排序算法,其基本思想是通过不断地交换相邻的逆序元素,逐步将较大的元素“冒”到数组的后部,从而实现整个序列的有序化。这个过程就像水底下的气泡逐渐上升到水面一样,因此得名“冒泡...
以下是冒泡排序算法的基本步骤: 1. 比较相邻的元素:从序列的第一个元素开始,比较相邻的两个元素,如果前一个比后一个大,则交换它们的位置。 2. 遍历序列:对于每一对相邻元素做同样的比较,从开始第一对到结尾的...
通过研究C#的冒泡排序,不仅可以了解排序算法的基本概念,还可以加深对控制流程、数组操作的理解,同时为学习更复杂的算法打下坚实的基础。在学习过程中,可以尝试优化冒泡排序,比如添加一个标记来检测是否需要继续...
冒泡排序是一种基础的排序算法,它通过重复遍历待排序的序列,比较相邻元素并交换位置,使得每个元素都能逐步“浮”到正确的位置上。这种方法得名于排序过程中较小的元素像气泡一样逐渐上升到序列的顶端。本文将深入...
在计算机科学领域,排序...通过深入研究和实践这些排序算法,初学者可以提升编程技能,为更复杂的算法和问题解决打下坚实的基础。在提供的"sorttest"文件中,可能包含了这些排序算法的代码示例,供学习者参考和实践。
### 基于C语言的排序算法研究 #### 一、引言 本文档主要探讨了C语言中常用的五种排序算法,它们分别是选择排序、冒泡排序、插入排序、希尔排序以及快速排序。每种排序算法都有其独特的思想、适用场景及优缺点。通过...
冒泡排序是一种基础但实用的排序算法,尤其在学习编程初期常常被用来讲解排序的原理。在C#中,冒泡排序可用于对一系列数值进行升序或降序排列。接下来,我们将深入探讨冒泡排序的原理、实现方式以及C#中的具体应用。...
在这份文档中,我用C语言实现了排序算法的多种方法,包括插入排序、选择排序、冒泡排序、希尔排序、归并排序、快速排序、桶排序和基数排序。这些算法可以帮助我们对数据进行有效的排序和整理,以便更好地处理和分析...