冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
import java.util.Scanner;
public class bubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
System.out.print("请输入排序的数字个数:");
Scanner in = new Scanner(System.in);
n = in.nextInt();
int sort[] = new int[n];
System.out.print("请输入" + n + "个整数:");
for(int i = 0;i < n;i++)
sort[i] = in.nextInt();
int k = 0;
for(int i = 0;i < n;i++)
{
int flag = 0;
for(int j = 0; j < n-i-1;j++)
{
if((sort[j]) > (sort[j+1]))
{
k = sort[j];
sort[j] = sort[j+1];
sort[j+1] = k;
flag++;
}
}
if(flag == 0)
break;
System.out.println(i+1 + "趟排序后的结果为:");
for(int m = 0;m < n;m++)
System.out.print(sort[m]+" ");
System.out.println();
}
System.out.println("冒泡排序后的数组为:");
for(int i = 0;i < n;i++)
System.out.print(sort[i]+" ");
}
}
分享到:
相关推荐
Java冒泡排序算法详解 冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,依次比较相邻元素,如果他们的顺序错误就把他们交换过来。下面是一个用Java实现冒泡排序的算法: public class Bubblesort { ...
自己面试的时候遇到的,回来以后用java写了个完整的!
在实际编程中,我们可能会编写自己的排序函数,比如在"CustomSort"这个压缩包中,可能就包含了作者自己实现的冒泡排序和二分排序的代码。编写这样的代码有助于加深对排序算法的理解,同时也为今后的项目开发提供了可...
"自己写的排序算法,还有点小问题"这个标题表明作者已经尝试实现了一个排序算法,但可能遇到了一些挑战或bug。描述中提到的“只有个框架,递归计算”暗示了作者可能使用了递归的方式来实现排序,这是一种常见的编程...
自学算法导论中前几章,并自己写的排序算法源码包括gtest的测试用例。 详细介绍看我博客 http://blog.csdn.net/ceofit 一、选择法排序、冒泡排序、插入法排序 http://blog.csdn.net/ceofit/article/details/7397020 ...
本项目中,你提供了六种不同的排序算法的C#实现:冒泡排序、选择排序、快速排序、哈希排序、堆排序以及插入排序。下面将详细解释这些排序算法的原理和特点。 1. **冒泡排序**: 冒泡排序是最简单的排序算法之一,...
当然,为了学习和理解,我们也可以自己编写这些基本排序算法的C++代码。 例如,快速排序的C++实现可能如下: ```cpp void quickSort(int arr[], int left, int right) { if (left ) { int pivotIndex = ...
java简单冒泡排序算法,本人自己写的,完全可以执行!
自己写的可视化算法,如果有错误。可以私信我哦! t = turtle.Turtle() w = turtle.Screen() turtle.hideturtle() turtle.getscreen().tracer(5,0) turtle.penup() turtle.backward(150) turtle.pendown() turtle....
"自己写的排序2.0版本"可能指的是一个作者自定义实现的排序算法,它采用了递归的方式来解决排序问题。递归是一种解决问题的方法,它将问题分解为更小的子问题,直到子问题可以直接解答或变得足够简单。在这个特定的...
python代码实现冒泡排序代码其实很简单,具体代码如下所示: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 def bubbleSort(numbers): for j in ...
冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来...
内部排序算法是指在内存中进行排序的算法,常见的内部排序算法有冒泡排序、选择排序、插入排序、归并排序、快速排序等。 在JavaScript中,我们可以使用onsubmit事件和onblur事件来实现表单校验。在下面的例子中,...
只能自己写个扩展方法了,方法内使用的冒泡排序算法,非常简单,当然使用是更简单、方便了。 注意:将方法写为扩展方法更方便: class Student { int id; string name; } ObservableCollection listDatas=new ...
我也知道,关于我标题中的排序,博客园中的很多作者都写过详细解释的文章,可能,笔者本人认为自己的理解更能体现出这个排序的工作原理吧,所以,笔者也就大惭不愧的在这里再次写下关于冒泡排序的文章,有需要的读者...
- **冒泡排序**:这是一种简单的交换排序方法,通过重复遍历待排序的序列,依次比较相邻元素并交换位置,直到序列变为有序。 - **选择排序**:选择排序每次从未排序的元素中找到最小(或最大)元素,放到已排序...
内容概要:这是本人在复习数据结构排序算法所写的markdown文档,对各个算法进行了比较,分析其稳定性。通过对六种排序算法的介绍,了解其中的核心原理,手写源码过程中对其代码进行注释讲解。 适用人群:本人文档是...
* 根据教师的演示自主的探究设计冒泡排序算法的图形化程序。 活动 3: 选择排序(第 3 课时) * 学生排队活动,解释选择排序的原理。 * 利用文心一言人工智能平台,进一步明确标准的选择排序概念及基本原理,帮助...
之前在知乎看到有人在问 自己写了一个冒泡排序算法如何用HTML,CSS,JavaScript展现出来排序过程。 感觉这个问题还挺有意思 。前些时间就来写了一个。这里记录一下实现过程。 基本的思想是把排序每一步的时候每个...