Java 冒泡排序与快速排序的实现
冒泡排序
基本特点
(1)基于交换思想的排序算法
(2)从一端开始,逐个比较相邻的两个元素,发现倒序即交换。
(3)一次遍历,一定能将其中最大(小)的元素交换到其最终位置上
排序过程模拟
代码实现
static void Bubble_Sort(int array[]){
for(int i=0;i<array.length;i++)
{
for(int j=0;j<array.length-i-1;j++)
{
if(array[j]<array[j+1])
{
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
System.out.print("第"+(i+1)+"次排序的结果:");
for(int c=0;c<array.length;c++)
{
System.out.print(array[c]+"\t");
}
System.out.println();
}
System.out.print("最终排序结果:");
for(int c=0;c<array.length;c++){
System.out.print(array[c]+"\t");
}
}
快速排序
基本思想
选定一个元素作为中间元素,然后将表中所有元素与改中间元 素相比较,将表中比中间元素小的元素调到表的前面,将比中间元素大的元素 调到后面,再将中间元素放在
这两部分之间以作为分界点,这样便得到一个划分。 然后再对左右两部分分别进行快速排序,直到每个子表仅有一个元素或为空表为止。
划分方法
1.中间元素的选择:作为参考点的中间数的选择没有特别的规定, 本次默认为第一个元素。
2.中间元素所占空间可能被其他元素占用,为此,可先保存该元素的值到其他位置以腾出起空间。
3.这样,前面便有一个空位置(i),可从最后面开始往前搜索一个比中间数大的元素,并将其放置到后面的这个位置上。
4.此刻,后面便有了一个空位置(j),可从前面开始往后搜索一个比中间数小的元素,并将其放置到前面的位置。4.重复1 2 ,直到两边搜索的空位重合(i=j)。
排序过程模拟

代码实现
static int partition(int array[],int start,int end){
int temp=array[start];
int i=start;
int j=end-1;
while(i!=j){
while(i<j&&array[j]>temp){
j--;
}
if(i<j){
array[i]=array[j];
i++;
}
while(i<j&&array[i]<temp){
i++;
}
if(i<j){
array[j]=array[i];
j--;
}
}
array[i]=temp;
return i;
}
static void QuickSort(int a[],int s,int e){
if(s<e){
int i=partition(a, s, e );
QuickSort(a, s,i-1);
QuickSort(a, i+1, e);
}
}
Java 冒泡排序与快速排序的实现的更多相关文章
- java冒泡排序和快速排序
本ID技术干货公众号"java工会",欢迎关注指正. 一.冒泡排序 1.算法介绍 设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] & ...
- java冒泡排序和快速排序代码
冒泡排序: package nicetime.com; //基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,// 让较大的数往下沉,较小的往上 ...
- Java冒泡排序与快速排序笔记
public class Sort { public static void sort() { Scanner input = new Scanner(System.in); int sort[] = ...
- 使用JAVA直观感受快速排序与冒泡排序的性能差异
初学算法,肯定会编写排序算法 其中两个最为有名的就是冒泡排序和快速排序 理论上冒泡排序的时间复杂度为O(N^2),快速排序的时间复杂度为O(NlogN) 下面本门使用JAVA,分别编写三段排序程序 对 ...
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现) 程序员必知的8大排序(三)-------冒 ...
- 牛客网Java刷题知识点之插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、冒泡排序、快速排序、归并排序和基数排序(博主推荐)
不多说,直接上干货! 插入排序包括直接插入排序.希尔排序. 1.直接插入排序: 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次不用 ...
- 2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序
//冒泡排序 public class demo{ public static void main(String[] args) { int[] sum={2,9,10,1,5,88}; System ...
- (十七)java冒泡排序和compareto
java中的排序有:冒泡排序.快速排序.选择排序.插入排序和希尔排序,还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序法:利用双重for循环,重复走访要排序的数列,两两比较大 ...
- [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序
用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html 目录 马桶排序(令人 ...
随机推荐
- Informatica 简单使用
1. Informatica简介 ① Repository manager 主要用来维护资料库的目录,对象,建完对象可以创建demo的folder. ② Administration Console是 ...
- 图解HTTP-1.web和网络基础
目录 1. 3 项 WWW 构建技术 2. TCP/IP 是互联网相关的各类协议族的总称 协议(protocol) TCP/IP分层管理 TCP/IP通信传输流 封装(encapsulate) 3. ...
- 洛谷P1968 美元汇率
题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值. 输入输出格式 ...
- datatable 单元格默认文本
在列字段中添加属性:"defaultContent": "-"
- Linux中的代码编辑器vim
Vim的三种工作模式 命令行模式 插入模式 底行模式 Vim 的命令行模式 命令行模式是进入vim后的初始模式,在该模式下主要是使用方向键来移动光标的位置,并通过相应的命令来进行文字的编辑. 切换方法 ...
- nginx+php整合(是让nginx可以运行php,以及下载地址)
下载地址: nginx:http://nginx.org/en/download.html PHP: https://windows.php.net/download/ 都是官网的自己选择版本 安装文 ...
- 在ubuntu上安装subline
Sublime Text is a most popular, lightweight and smart cross-platform text and source code editor wit ...
- 大话CNN经典模型:AlexNet
2012年,Alex Krizhevsky.Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,夺得了2012年ImageNet LS ...
- Hadoop三大发行版本
apache 提供基础版本 cloudera 主要是修改Hadoop,提供更加稳定的发行版本,以及可视化的管理服务,主要产品如下: CDH:Cloudera Distributed Hadoop Cl ...
- TouTiao开源项目 分析笔记19 问答内容
1.真实页面预览 1.1.成果预览 首先是问答列表 然后每个item设置点击事件,进入问答内容列表 然后每一个问答内容也设置点击事件,进入问答详情 1.2.触发事件. 在WendaArticleOne ...
