程序员必知的8大排序(三)——-冒泡排序,快速排序(java实现)

程序员必知的8大排序(三)——-冒泡排序,快速排序(java实现)接上一篇:程序员必知的8大排序(二)——-简单选择排序,堆排序(java实现) 5.冒泡排序(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。(2)实例:(3)用java实现publicclass

大家好,又见面了,我是你们的朋友全栈君。

接上一篇:程序员必知的8大排序(二)——-简单选择排序,堆排序(java实现)

 

5.冒泡排序

(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

(2)实例:

程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)

(3)用java实现

public class bubbleSort {
public	bubbleSort(){
	 int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
	int temp=0;
	for(int i=0;i<a.length-1;i++){
		for(int j=0;j<a.length-1-i;j++){
		if(a[j]>a[j+1]){
			temp=a[j];
			a[j]=a[j+1];
			a[j+1]=temp;
		}
		}
	}
	for(int i=0;i<a.length;i++)
		System.out.println(a[i]);	
}
}

6.快速排序

1)基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

2)实例:

程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)

3)用java实现

 

public class quickSort {

  inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};

public quickSort(){

    quick(a);

    for(int i=0;i<a.length;i++)

       System.out.println(a[i]);

}

public int getMiddle(int[] list, int low, int high) {   

            int tmp = list[low];    //数组的第一个作为中轴   

            while (low < high) {   

                while (low < high && list[high] >= tmp) {   

                    high--;   

                }   

                list[low] = list[high];   //比中轴小的记录移到低端   

                while (low < high && list[low] <= tmp) {   

                    low++;   

                }   

                list[high] = list[low];   //比中轴大的记录移到高端   

            }   

           list[low] = tmp;              //中轴记录到尾   

            return low;                   //返回中轴的位置   

        }  

public void _quickSort(int[] list, int low, int high) {   

            if (low < high) {   

               int middle = getMiddle(list, low, high);  //将list数组进行一分为二   

                _quickSort(list, low, middle - 1);        //对低字表进行递归排序   

               _quickSort(list, middle + 1, high);       //对高字表进行递归排序   

            }   

        } 

public void quick(int[] a2) {   

            if (a2.length > 0) {    //查看数组是否为空   

                _quickSort(a2, 0, a2.length - 1);   

        }   

       } 

}


接下一篇:程序员必知的8大排序(四)——-归并排序,基数排序(java实现) .

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151101.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle11g 最终版本11.2.0.4安装详细过程

    oracle11g 最终版本11.2.0.4安装详细过程–安装背景上次碰到问题,cursor:mutexS导致的load过高,参考原来剖析额过程记录地址:https://blog.csdn.net/demonson/article/details/79753702,有说可以升级到11.2.0.4就能避免这种问题,所以准备重新搭建新版本11.2.0.4。 安装环境是:azure云linuxcentos6.5。…

    2022年5月7日
    288
  • 贝叶斯优化python包_贝叶斯优化

    贝叶斯优化python包_贝叶斯优化万壑松风知客来,摇扇抚琴待留声1.文起本篇文章记录通过Python调用第三方库,从而调用使用了贝叶斯优化原理的Hyperopt方法来进行超参数的优化选择。具体贝叶斯优化原理与相关介绍将在下一次文章中做较为详细的描述,可以参考这里。Hyperopt是Python的几个贝叶斯优化库中的一个。它使用TreeParzenEstimator(TPE),其它Python库还包括了S…

    2025年8月15日
    4
  • Netty系列之Netty安全性

    Netty系列之Netty安全性

    2022年3月12日
    34
  • 倒立摆及其应用//2021-2-23[通俗易懂]

    倒立摆及其应用//2021-2-23[通俗易懂]前言:以前搞电赛的时候搞过Pid平衡小车,倒立摆基本实现方法与平衡小车差不多,有一次刚院跑到实验室唠嗑,问你知不知道倒立摆的应用?我说不知道,他说航天火箭····,你们的这些常识太少了,落下这句话就走了,故为了解这些常识,有此小文。正文:一、倒立摆(invertedpendulum)1.概述倒立摆,InvertedPendulum,是典型的多变量、高阶次(有些还分几阶倒立摆【PID中涉及角度还有角速度这样来看多变量高阶层就不难理解了】),非线性、强耦合、自然不稳定系统。倒…

    2022年8月18日
    9
  • win10 硬盘图标变成空白解决办法是什么_新电脑如何分区硬盘win10

    win10 硬盘图标变成空白解决办法是什么_新电脑如何分区硬盘win10Win10硬盘图标变成空白解决办法如图,有时候会出现这种硬盘图标变成空白的情况,虽然不影响使用,但强迫症表示真的很难受,这里给出解决办法:按下组合键WIN+R,输入regedit再按回车运行,这时候会有一个提示,选择“是”。一层一层找到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\这个路径,或者也可以直接在上方地址栏输入,注意我这里路径最开始显示的是计

    2022年10月18日
    4
  • Java对象与JSON字符串互相转换

    Java对象与JSON字符串互相转换目录一、Java对象转为JSON字符串二、JSON字符串转为Java对象JSON解析器,常见的解析器:Jsonlib,Gson,fastjson,jackson介绍:Jackson一、Java对象转为JSON字符串1、引入需要的Jackson所需要的jar包(三个)2、创建一个Person类(代码见后面)注解1,@JsonIgnore作用:排除属性 注解2…

    2022年9月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号