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 目录 马桶排序(令人 ...
随机推荐
- WinSCP 工具
windows 与 Linux 传文件,非常方便.安全.
- linux flushing file system caches
We may drop the file system caches on Linux to free up memory for applications. Kernels 2.6.16 and n ...
- 2.1-Java语言基础(keyword)
2.1 keyword watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXNpcmVuZQ==/font/5a6L5L2T/fontsize/400/fi ...
- rcnn spp_net hcp
rcnn开创性工作,但是计算时间太长,重复计算太大. spp_net将重复计算避免了. hcp是yan shuicheng那边的,是用bing生成regions,然后用normalized cut将这 ...
- Dijkstra&&Floyd
文章来源:(http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html) (以下内容皆为转载) Dijkstra算法 1.定义 ...
- python基础——文件访问模式
文件访问模式 访问模式 说明 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. w 打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. a 打开一个 ...
- 连接MYSQL 错误代码2003
问题是服务里面mysql没有启动或者mysql服务丢失 解决办法: 开始->运行->cmd,进到mysql安装的bin目录(以我的为例,我的安装在D盘)D:\MySQL\bin>my ...
- Linux Centos 通过虚拟用户访问FTP的配置
Linux Centos 通过虚拟用户访问FTP的配置 实验需求: 让下面4个虚拟用户使用系统用户ftpvu的权限来连接到Linux FTP服务器,并确保都锁定在 自己的虚拟用户目录,不能切换到其他目 ...
- 记 页面使用overflow-scroll在iOS上滑动卡顿的问题
页面使用overflow-scroll在iOS上滑动卡顿的问题 因在做一个滑动的list列表,为某个div使用了overflow: scroll属性. 结果在手机上测试时,ios手机有明显的滑动卡顿问 ...
- 深入理解restfulAPI和 Oauth2.0(精简版)
一.restfulAPI 1.解释: restfulAPI协议,我们也可以说是一套API接口编写风格. 它被现在很多企业所认可和默认,是一套成俗的API接口编写方案. 2.restfulAPI之资源 ...
