`

Java排序问题(一)

阅读更多

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排序.txt` - **文件描述**:该文本文件主要介绍了几种常用的Java排序算法,并通过示例代码展示了...

    java中文排序,数字字母汉字排序

    在Java编程语言中,对包含中文、数字和字母的数据进行排序是一项常见的任务。这个场景下,我们关注的是如何实现一个自定义的排序规则,按照数字、字母和汉字的顺序进行排列。以下是对这一主题的详细解释。 首先,...

    面向对象java排序包

    【面向对象Java排序包】是基于Java编程语言设计的一个专门用于处理排序问题的软件组件。这个包充分体现了面向对象的设计原则,将数据结构、算法和业务逻辑封装在独立的对象中,提高了代码的可读性和可维护性。它不仅...

    java排序问题

    用java语言排序问题

    java排序算法使用及场景说明

    Java 排序算法使用及场景说明 本文档主要介绍了 Java 排序算法的使用和场景说明,包括了五个实践场景的解决方案。 Scenario 1: 找出两个文件共同的 URL 在这个场景中,我们有两个文件 a 和 b,每个文件中存放了 ...

    java排序简单介绍

    Java排序是程序开发中常见的一种任务,主要用于对数据集合进行有序排列。在Java中,有多种内置和自定义的排序算法可供选择,每种都有其特定的适用场景和性能特点。下面将详细介绍几种常见的Java排序方法。 1. **...

    java 中文姓氏 排序

    ### Java 中文姓氏排序详解 #### 一、引言 在处理中文数据时,我们经常需要对含有中文姓名的数据进行排序。Java 提供了多种方式进行排序,包括使用 `Collections.sort()` 方法配合自定义比较器(`Comparator`)。...

    java代码-使用java解决java排序之-快速排序的问题的源代码

    java代码-使用java解决java排序之-快速排序的问题的源代码 ——学习参考资料:仅用于个人学习使用!

    java排序大全(含各种排序算法)

    Java排序算法是编程中基础且重要的概念,它们用于组织数组或列表中的元素,使其按照特定顺序排列。在本文中,我们将探讨几种常见的排序算法的Java实现,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、...

    Java排序算法大全

    Java排序算法大全是一份专为Java开发者准备的学习资源,涵盖了各种经典的排序算法,旨在帮助初学者和有经验的程序员深入理解排序的原理和实现。排序是计算机科学中的基础且重要的概念,它在数据处理、数据库操作、...

    Java 选择排序 算法

    Java选择排序算法是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种算法对列表中的数据进行了一次完整...

    JAVA排序汇总 java应用中一些比较经典的排序算法

    【JAVA排序汇总】Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将对几种经典的排序算法进行简要介绍和分析。 1. **插入排序**: 插入排序分为直接插入排序和折半插入排序。直接插入排序是将每个...

    java 排序 面试题

    ### Java排序方法面试知识点详解 在Java编程领域中,排序算法是面试中常见的技术考察点之一。本篇文章将深入分析几种基本的排序算法,并通过具体的Java代码示例来阐述每种算法的特点及其应用场景。 #### 1. 插入...

    Java排序算法(桶排序,基数排序等)

    在计算机科学中,排序算法是用于对一组数据进行排列的算法。Java 中实现排序算法通常涉及到多种方法,每种算法都有其特定的适用场景和性能特点。下面将详细介绍标题和描述中提到的一些常见排序算法,并提供Java实现...

    Java排序算法源代码

    本资源“Java排序算法源代码”提供了一系列经典的排序算法实现,包括冒泡排序、插入排序、选择排序、希尔排序和快速排序,全部用Java语言编写。这些算法对于学习和理解排序原理以及优化代码性能至关重要。 1. **...

    Java 实现ip 地址排序

    Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序

    各种排序算法比较(java实现)

    合并排序是一种基于分治策略的排序算法,它将大问题分解为小问题来解决。首先将数组分为两个相等或近乎相等的部分,然后对每一部分递归地进行排序,最后将结果合并。这种算法的时间复杂度为O(n log n),稳定性好,...

    java排序可视化页面

    Java排序可视化页面是一种用于教学和理解排序算法的强大工具。它通过图形化的方式展示了排序过程,使得用户能够直观地看到冒泡排序、选择排序和插入排序这三种基础排序算法的工作原理。接下来,我们将深入探讨这些...

Global site tag (gtag.js) - Google Analytics