1、冒泡排序
思想:通俗来说,就像泡泡向上冒一样,每次都是最小的漂到上面,假如在同一个立体空间中,每次最小(最大)的到达一个端点,然后把这个端点的位置确定,再在其他的泡泡中找出最小(最大)的到达其他剩余部分的端点,依次进行下去。就是冒泡排序。
package Sort; import java.util.Scanner; public class maopao { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int n; int temp; System.out.println("定义数组长度:"); while(sc.hasNextInt()) { temp=0; n=sc.nextInt(); int[] arr=new int[n]; for(int i=0;i<n;i++) { System.out.print("输入第"+i+"个数。"); arr[i]=sc.nextInt(); } for(int j=0;j<arr.length;j++) { for(int k=0;k<arr.length-1-j;k++) { if(arr[k]>arr[k+1]) { temp=arr[k]; arr[k]=arr[k+1]; arr[k+1]=temp; } } } System.out.print("输出排序后数组:"); System.out.print(arr[0]); for(int i=1;i<arr.length;i++) { System.out.println(" "+arr[i]); } System.out.println(); } } }
2、选择排序
思想:每次都是找到这一列数的最小(最大)与第一个数交换位置,依次进行下去,就是选择排序。
package Sort; import java.util.Scanner; public class selectSort { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("选择排序:"); System.out.println("请输入一个数组长度,可多次输入"); while(sc.hasNextInt()) { int temp = 0; int n=sc.nextInt(); int[] arr= new int[n]; for(int i=0;i<n;i++) { System.out.print("输入第"+(i+1)+"个数字"); arr[i]=sc.nextInt(); } for(int j=0;j<n;j++) { int min=j; for(int k=j+1;k<n;k++) { if(arr[min]>arr[k]) { min=k; } } if(j!=min) { temp=arr[j]; arr[j]=arr[min]; arr[min]=temp; } } System.out.println("输出排序后数组:"); System.out.print(arr[0]); for(int i=1;i<n;i++) { System.out.print(" "+arr[i]); } System.out.println(); } } }
3、插入排序
思想:相对前两种排序,代码可能会比较难理解一点,通俗的来说,就是补一个数列分成两部分,第一部分开始的时候只有第一个数字,每次都拿出第二部分数组的第一个数插入到第一部分 数组的 合适位置,依次进行到最后,使两个数组合并成一个数组。
package Sort; import java.util.Scanner; public class insertSort { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("插入排序:"); System.out.println("请输入数组长度,可多次输入:"); while(sc.hasNextInt()) { int temp=0; int k; int n=sc.nextInt(); int[] arr=new int[n]; for(int i=0;i<n;i++) { System.out.print("请输入第"+(i+1)+"个数"); arr[i]=sc.nextInt(); } for(int j=1;j<n;j++) { temp=arr[j]; k=j-1; while(k>= 0&&temp<arr[k]) { arr[k+1]=arr[k]; k--; } arr[k+1]=temp; } System.out.println("输出排序后的数列:"); System.out.print(arr[0]); for(int t=1;t<n;t++) { System.out.print(" "+arr[t]); } System.out.println(); } } }
欲知后事如何,请等待排序算法(二)。。。
相关推荐
理解这些排序算法不仅有助于编写高效的代码,也有利于参加面试时回答相关问题。在学习过程中,可以通过实践来加深理解,比如编写Java实现,测试不同数据集下的性能,甚至进一步优化算法。同时,也可以研究并对比其他...
根据提供的文件信息,我们可以归纳出以下关于Java排序的相关知识点: ### 一、文件基本信息 - **文件名**:`java排序.txt` - **文件描述**:该文本文件主要介绍了几种常用的Java排序算法,并通过示例代码展示了...
在Java编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...
【面向对象Java排序包】是基于Java编程语言设计的一个专门用于处理排序问题的软件组件。这个包充分体现了面向对象的设计原则,将数据结构、算法和业务逻辑封装在独立的对象中,提高了代码的可读性和可维护性。它不仅...
用java语言排序问题
Java 排序算法使用及场景说明 本文档主要介绍了 Java 排序算法的使用和场景说明,包括了五个实践场景的解决方案。 Scenario 1: 找出两个文件共同的 URL 在这个场景中,我们有两个文件 a 和 b,每个文件中存放了 ...
Java排序是程序开发中常见的一种任务,主要用于对数据集合进行有序排列。在Java中,有多种内置和自定义的排序算法可供选择,每种都有其特定的适用场景和性能特点。下面将详细介绍几种常见的Java排序方法。 1. **...
### Java 中文姓氏排序详解 #### 一、引言 在处理中文数据时,我们经常需要对含有中文姓名的数据进行排序。Java 提供了多种方式进行排序,包括使用 `Collections.sort()` 方法配合自定义比较器(`Comparator`)。...
java代码-使用java解决java排序之-快速排序的问题的源代码 ——学习参考资料:仅用于个人学习使用!
Java排序算法是编程中基础且重要的概念,它们用于组织数组或列表中的元素,使其按照特定顺序排列。在本文中,我们将探讨几种常见的排序算法的Java实现,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、...
Java排序算法大全是一份专为Java开发者准备的学习资源,涵盖了各种经典的排序算法,旨在帮助初学者和有经验的程序员深入理解排序的原理和实现。排序是计算机科学中的基础且重要的概念,它在数据处理、数据库操作、...
Java选择排序算法是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种算法对列表中的数据进行了一次完整...
【JAVA排序汇总】Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将对几种经典的排序算法进行简要介绍和分析。 1. **插入排序**: 插入排序分为直接插入排序和折半插入排序。直接插入排序是将每个...
### Java排序方法面试知识点详解 在Java编程领域中,排序算法是面试中常见的技术考察点之一。本篇文章将深入分析几种基本的排序算法,并通过具体的Java代码示例来阐述每种算法的特点及其应用场景。 #### 1. 插入...
在计算机科学中,排序算法是用于对一组数据进行排列的算法。Java 中实现排序算法通常涉及到多种方法,每种算法都有其特定的适用场景和性能特点。下面将详细介绍标题和描述中提到的一些常见排序算法,并提供Java实现...
本资源“Java排序算法源代码”提供了一系列经典的排序算法实现,包括冒泡排序、插入排序、选择排序、希尔排序和快速排序,全部用Java语言编写。这些算法对于学习和理解排序原理以及优化代码性能至关重要。 1. **...
Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序
合并排序是一种基于分治策略的排序算法,它将大问题分解为小问题来解决。首先将数组分为两个相等或近乎相等的部分,然后对每一部分递归地进行排序,最后将结果合并。这种算法的时间复杂度为O(n log n),稳定性好,...
Java排序可视化页面是一种用于教学和理解排序算法的强大工具。它通过图形化的方式展示了排序过程,使得用户能够直观地看到冒泡排序、选择排序和插入排序这三种基础排序算法的工作原理。接下来,我们将深入探讨这些...