Java | 数组排序算法

这篇具有很好参考价值的文章主要介绍了Java | 数组排序算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、冒泡排序

冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移到数组前面,把较大的元素移到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部升到顶部。

package haha;
public class helloworld{
	public static void main(String[] args) {
		int[] array= {63,4,24,1,3,15};  //创建一个数组,元素是乱序的
		helloworld sorter=new helloworld();  //创建冒泡排序类的对象
		sorter.sort(array);
	}
	
	public void sort(int[] array) {
		for(int i=1;i<array.length;i++)
		{
			//比较相邻两个元素,较大的元素往后冒泡
			for(int j=0;j<array.length-i;j++)
			{
				if(array[j]>array[j+1])
				{
					int temp=array[j];  //把第一个元素值保留到临时变量中
					array[j]=array[j+1];  //把第二个元素的值保存到第一个元素单位中
					array[j+1]=temp;   //把临时变量(第一个元素原值)保存到第二个元素单位中
				}
			}
		}
		showArray(array);
	}
	
	public void showArray(int[] array) {
		for(int i:array)
		{
			System.out.print(">"+i);
		}
		System.out.println();
	}
}

Java | 数组排序算法,Java学习,排序算法,算法,数据结构,java,eclipse

二、直接选择排序

直接选择排序的基本思想是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值。注意这里与冒泡排序的区别,不是交换相邻元素,而是把满足条件的元素与指定的排序位置元素交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,直至整个数组都变成已排序好的格式。

package haha;
public class helloworld{
	public static void main(String[] args) {
		int[] array= {63,4,24,1,3,15};  //创建一个数组,元素是乱序的
		helloworld sorter=new helloworld();  //创建直接排序类的对象
		sorter.sort(array);  //调用排序类对象方法,对数组排序
	}
	
	public void sort(int[] array) {
		int index;
		for(int i=1;i<array.length;i++)
		{
			index=0;
			for(int j=1;j<=array.length-i;j++)
			{
				if(array[j]>array[index])
				{
					index=j;
				}
			}
			//交换在位置array,length-i和index(最大值)上的两个数
			int temp=array[array.length-i];
			array[array.length-i]=array[index];
			array[index]=temp;
		}
		showArray(array);
	}
	
	public void showArray(int[] array) {
		for(int i:array)
		{
			System.out.print(">"+i);
		}
		System.out.println();
	}
}

Java | 数组排序算法,Java学习,排序算法,算法,数据结构,java,eclipse

三、反转排序

反转排序的基本思想比较简单,也很好理解,其实思路就是把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,依此类推,直到把所有数组元素反转替换。

package haha;
public class helloworld{
	public static void main(String[] args) {
		int[] array= {10,20,30,40,50,60};  //创建一个数组
		helloworld sorter=new helloworld();  //创建反转排序类的对象
		sorter.sort(array);  //调用排序类对象方法,将数组反转
	}
	
	public void sort(int[] array) {
		System.out.println("数组原有内容:");
		showArray(array);
		int temp;
		int len=array.length;
		for(int i=0;i<len/2;i++)
		{
			temp=array[i];
			array[i]=array[len-i-1];
			array[len-i-1]=temp;
		}
		System.out.println("数组反转后内容:");
		showArray(array);
	}
	
	public void showArray(int[] array) {
		for(int i:array)
		{
			System.out.print("\t"+i);
		}
		System.out.println();
	}
}

Java | 数组排序算法,Java学习,排序算法,算法,数据结构,java,eclipse 文章来源地址https://www.toymoban.com/news/detail-605735.html

到了这里,关于Java | 数组排序算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构与算法中的七大排序(Java实现)

    目录 一、直接插入排序 二、希尔排序 三、直接选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序               定义i下标之前的元素全部已经有序 ,遍历一遍要排序的数组,把i下标前的元素全部进行排序,当遍历玩这个数组后,就已经排好序了。        

    2024年02月06日
    浏览(58)
  • 数据结构与算法学习(day1)——简化版桶排序

    (1)我是一个大三的学生(准确来说应该是准大三,因为明天才报名哈哈哈)。 (2)最近就想每天闲着没事也刷些C语言习题来锻炼下编程水平,也一直在思考企业对应届大学生能力的要求,所以经常会想到关于面试的事情。由于我也没实习过,所以我对面试没有一个具象化

    2024年02月09日
    浏览(43)
  • 【Java数据结构与算法】Day2-高级排序(希尔、归并、快速、计数)

    ✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Java数据结构与算法】 🥭本文内容:Java数据结构与算法中的比较高级的排序,希尔排序、归并排序、快速排序、计数排序

    2024年02月02日
    浏览(64)
  • java数据结构与算法刷题-----LeetCode209. 长度最小的子数组

    java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完): https://blog.csdn.net/grd_java/article/details/123063846 解题思路 代码:时间复杂度O(n).空间复杂度O(1)

    2024年01月21日
    浏览(54)
  • 数据结构——利用堆进行对数组的排序

    今天文章的内容是关于我们如何利用堆的特性对我们的数组进行排序,还有就是我们的TopK的问题,这次我们放在的是文件种,我们放入一亿个数字,然后我们取出一亿个数字中最大的十个数,利用上章堆的问题进行解决。 首先就是我们如果对一个数组要进行排序,这个数组

    2024年02月05日
    浏览(42)
  • 数据结构——排序算法——归并排序

    在第二个列表向第一个列表逐个插入的过程中,由于第二个列表已经有序,所以后续插入的元素一定不会在前面插入的元素之前。在逐个插入的过程中,每次插入时,只需要从上次插入的位置开始,继续向后寻找插入位置即可。这样一来,我们最多只需要将两个有序数组遍历

    2024年02月09日
    浏览(47)
  • 【排序算法】数据结构排序详解

    前言: 今天我们将讲解我们数据结构初阶的最后一部分知识的学习,也是最为“炸裂”的知识---------排序算法的讲解!!!! 排序 :所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,

    2023年04月08日
    浏览(50)
  • 数据结构和算法笔记4:排序算法-归并排序

    归并排序算法完全遵循分治模式。直观上其操作如下: 分解:分解待排序的n个元素的序列成各具n/2个元素的两个子序列。 解决:使用归并排序递归地排序两个子序列。 合并:合并两个已排序的子序列以产生已排序的答案。 我们直接来看例子理解算法的过程,下面是要排序

    2024年01月21日
    浏览(64)
  • 【数据结构与算法】十大经典排序算法-希尔排序

    🌟 个人博客: www.hellocode.top 🏰 Java知识导航: Java-Navigate 🔥 CSDN: HelloCode. 🌞 知乎 :HelloCode 🌴 掘金 :HelloCode ⚡如有问题,欢迎指正,一起学习~~ 希尔排序是一种插入排序的改进版本,旨在解决插入排序在处理大规模数据时的效率问题。通过将数组分为多个子序列并对

    2024年02月12日
    浏览(80)
  • 【数据结构与算法】十大经典排序算法-快速排序

    🌟 个人博客: www.hellocode.top 🏰 Java知识导航: Java-Navigate 🔥 CSDN: HelloCode. 🌞 知乎 :HelloCode 🌴 掘金 :HelloCode ⚡如有问题,欢迎指正,一起学习~~ 快速排序(Quick Sort)是一种高效的排序算法,是对冒泡排序的优化。它采用分治法(Divide and Conquer)的思想,将待排序序列

    2024年02月13日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包