程序员必知的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)
上一篇 2022年6月22日 下午3:36
下一篇 2022年6月22日 下午3:36


相关推荐

  • k8s-主节点巡检脚本

    k8s-主节点巡检脚本

    2021年6月2日
    137
  • 什么叫侧面指纹识别_屏下指纹和侧面指纹触控有什么区别

    什么叫侧面指纹识别_屏下指纹和侧面指纹触控有什么区别指纹识别作为一种生物识别方案,在手机上的应用为用户日常使用带来了极大的便利,从解锁手机到应用加密再到支付等场景,原本需要输密码的繁琐场景如今按一下手指就行。随着手机的发展,指纹解锁也出现了不同的解决方案,比如OPPOK3所采用的目前主流的屏下指纹解锁,以及荣耀9X所采用侧面指纹解锁。那么在实际应用场景中,哪种指纹识别更实用呢?采用了屏幕指纹的OPPOK3与侧面指纹的荣耀9X都有着真全面屏的设计…

    2022年6月30日
    46
  • 【工作技巧】WinRAR去除广告

    【工作技巧】WinRAR去除广告一、下载软件1.1、进入WinRAR国内官网,根据个人电脑系统位数进行下载对应的安装包。傻瓜式安装WinRAR,全部点击下一步。1.3、进入ResourceHacker官网,点击Download,然后点击EXEinstall,下载安装包。傻瓜式安装ResourceHacker,全部点击下一步。二、修改WinRAR.exe2.1、打开ResourceHacker程序,使用快捷键【Ctrl+O】选择WinRAR.exe文件。一般路径为【D:\ProgramFiles\WinRAR\Wi

    2022年5月9日
    48
  • spss分析方法聚类分析_变量聚类分析

    spss分析方法聚类分析_变量聚类分析聚类分析是根据研究对象的特征,按照一定标准对研究对象进行分类的一种分析方法。下面我们主要从下面四个方面来解说:一、实际应用聚类分析的目标就是在相似的基础上收集数据来分类。聚类源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。商业上:聚类分析被用来发现不同的客户群,并且通过购买模式刻画不同的客户群的特征。聚类分析是细分市场的有效工具,同时也可用于研究消费者行为

    2022年10月18日
    5
  • stm32 nvic配置

    stm32 nvic配置STM32有43个channel的settable的中断源;AIRC(ApplicationInterruptandResetRegister)寄存器中有用于指定优先级的4bits。这4个bits用于分配preemption优先级和sub优先级,在STM32的固件库中定义如下/*PreemptionPriorityGroup————————–

    2022年5月22日
    32
  • 各种获取设备唯一标识的方法介绍

    各种获取设备唯一标识的方法介绍一.UDID(UniqueDeviceIdentifier)UDID的全称是UniqueDeviceIdentifier,它就是苹果iOS设备的唯一识别码,它由40位16进制数的字母和数字组成(越狱的设备通过某些工具可以改变设备的UDID)。移动网络可利用UDID来识别移动设备,但是,从IOS5.0(2011年8月份)开始,苹果宣布将不再支持用uniqueIdentifier方法获

    2022年7月11日
    20

发表回复

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

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