- 浏览: 21574 次
- 性别:
- 来自: 大连
文章分类
最新评论
排序方法:
排序测试类:
package com.sst; public class SortDemo { /** 排序算法的分类如下: * 1.插入排序(直接插入排序、折半插入排序、希尔排序); * 2.交换排序(冒泡泡排序、快速排序); * 3.选择排序(直接选择排序、堆排序); * 4.归并排序; * 5.基数排序。 * * 关于排序方法的选择: * (1)若n较小(如n≤50),可采用直接插入或直接选择排序。 * 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。 * (2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜; * (3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。 **/ /**冒泡排序----交换排序的一种 * 相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后 * (如从小到大排序),下一次循环是将其他的数进行类似操作。 * * 【冒泡排序可以算是最经典的排序算法了,因为实现方法最简单, * 两层 for 循环,里层循环中判断相邻两个元素是否逆序,是的 * 话将两个元素交换,外层循环一次,就能将数组中剩下的元素中 * 最小的元素“浮”到最前面,所以称之为冒泡排序。】 * @param args * @return */ public int[] bubbleSort(int[] args){//冒泡排序算法 for(int i=0;i<args.length-1;i++){ for(int j=i+1;j<args.length;j++){//第i个与第i+1个比较再与第i+2个比较 if (args[i]>args[j]){ int temp=args[i]; args[i]=args[j]; args[j]=temp;//把最小的比出来放在最前面 } } } return args; } /** * 选择排序算法 * 选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号, * 则需要在剩余的 [i…n-1] 中找出其中的最小值,然后将找到的最小值与 i * 指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择最大值的子流程, * 所以人们形象地称之为选择排序。 * @param args * @return */ public static int[] selectSort(int[] args){//选择排序算法 for (int i=0;i<args.length-1 ;i++ ){ int min=i; for (int j=i+1;j<args.length ;j++ ){ if (args[min]>args[j]){ min=j; } } if (min!=i){ int temp=args[i]; args[i]=args[min]; args[min]=temp; } } return args; } /** * 插入排序算法 * 将一个记录插入到已排好序的有序表(有可能是空表)中,从而得到一个新的记录数增1的有序表。 * 比冒泡排序提高一倍多,而比选择排序也要快。 * * (插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] * 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 * k 的过程中逐个将比较过的元素往后移一位,为元素 x “腾位置”,最后将 k 对应的 * 元素值赋为 x ,插入排序也是根据排序的特性来命名的。) * @param args * @return */ public static int[] insertSort(int[] args){//插入排序算法 for(int i=1;i<args.length;i++){ for(int j=i;j>0;j--){ if (args[j]<args[j-1]){ int temp=args[j-1]; args[j-1]=args[j]; args[j]=temp; }else break; } } return args; } }
排序测试类:
package com.sst; import java.util.Arrays; public class SortDemoTest { /** * 排序测试 */ public static void main(String[] args) throws Exception { SortDemo sDemo=new SortDemo(); int array[]={10,9,8,7,6,5,1,9,65,34,2232,121,65}; //声明需要排序的数组 System.out.print("数组未排序前: "); for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } System.out.println(); //快速排序 Arrays.sort(array); //快速排序 System.out.print("进行快速排序后: "); for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } System.out.println(); //冒泡排序测试 sDemo.bubbleSort(array); // 冒泡排序 System.out.print("进行冒泡排序后: "); for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } //选择排序测试 System.out.println(); sDemo.selectSort(array); // 选择排序 System.out.print("进行选择排序后: "); for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } //插入排序测试 System.out.println(); sDemo.insertSort(array); // 插入排序 System.out.print("进行插入排序后: "); for(int i=0;i<array.length;i++){ System.out.print(array[i]+" "); } } }
发表评论
-
java中List对象排序的通用方法
2015-03-26 11:10 351http://blog.csdn.net/5iasp/arti ... -
得到List中重复的数据
2014-07-01 17:00 351// set中存放的是不可重复的元素 HashSet& ... -
jdbc
2014-06-26 07:38 356webservice :http://www.blogjava ... -
Java中如何遍历Map对象的4种方法
2014-04-21 08:55 564转自:http://blog.csdn.net/tjcyjd/ ... -
Array、List互相转换
2013-10-18 10:19 568数组转换为list: package com.basic.ob ... -
What version of Java do I have installed?
2013-10-16 16:42 515查看java版本:java -version -
数字转换为汉语中人民币的大写(转载)
2013-09-27 14:06 877java转换一: package dataDe ... -
单例模式
2013-09-26 11:19 306摘自:博客园,小黎*chichy Go for it ,向攻城 ... -
java随机数
2013-09-26 10:58 409有关随机数,在网上找了一些资料,感觉总结的不错,就记载下来,以 ... -
java日期工具类
2013-09-26 09:52 396今天遇到了日期转换知识,在网上搜集了一个测试例子,并且在自己电 ... -
java日期
2013-09-26 09:51 0package dataDemo; impor ... -
java判断字符串是否为汉字
2013-08-15 17:59 925//正则表达式实现 String ... -
java 读取文件
2013-07-12 12:47 3401、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文 ...
相关推荐
根据提供的文件信息,我们可以归纳出以下关于Java排序的相关知识点: ### 一、文件基本信息 - **文件名**:`java排序.txt` - **文件描述**:该文本文件主要介绍了几种常用的Java排序算法,并通过示例代码展示了...
Java 排序算法使用及场景说明 本文档主要介绍了 Java 排序算法的使用和场景说明,包括了五个实践场景的解决方案。 Scenario 1: 找出两个文件共同的 URL 在这个场景中,我们有两个文件 a 和 b,每个文件中存放了 ...
【JAVA排序汇总】Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将对几种经典的排序算法进行简要介绍和分析。 1. **插入排序**: 插入排序分为直接插入排序和折半插入排序。直接插入排序是将每个...
根据给定文件中的标题“Java排序代码大全”以及描述与标签中的关键词如“Java排序”、“排序大全”和“算法”,本文将详细解读文件中所包含的几种排序算法的实现方式,并结合具体代码进行深入分析。 ### 快速排序...
Java排序算法是编程中基础且重要的概念,它们用于组织数组或列表中的元素,使其按照特定顺序排列。在本文中,我们将探讨几种常见的排序算法的Java实现,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、...
【Java排序算法详细整理】 在计算机科学中,排序算法是用于对一组数据进行排列的算法。在Java中,实现各种排序算法有助于理解数据结构和算法的原理,同时也能提高编程能力。以下是对Java中常见的几种排序算法的详细...
【面向对象Java排序包】是基于Java编程语言设计的一个专门用于处理排序问题的软件组件。这个包充分体现了面向对象的设计原则,将数据结构、算法和业务逻辑封装在独立的对象中,提高了代码的可读性和可维护性。它不仅...
Java排序是程序开发中常见的一种任务,主要用于对数据集合进行有序排列。在Java中,有多种内置和自定义的排序算法可供选择,每种都有其特定的适用场景和性能特点。下面将详细介绍几种常见的Java排序方法。 1. **...
Java排序算法大全是一份专为Java开发者准备的学习资源,涵盖了各种经典的排序算法,旨在帮助初学者和有经验的程序员深入理解排序的原理和实现。排序是计算机科学中的基础且重要的概念,它在数据处理、数据库操作、...
在Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将全面解析Java中的各种排序算法,帮助你理解并掌握它们的核心概念、实现方式以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序...
本资源“Java排序算法源代码”提供了一系列经典的排序算法实现,包括冒泡排序、插入排序、选择排序、希尔排序和快速排序,全部用Java语言编写。这些算法对于学习和理解排序原理以及优化代码性能至关重要。 1. **...
java排序算法大全 为了便于管理,先引入个基础类: 一 插入排序 二 冒泡排序 三,选择排序 四 Shell排序 五 快速排序 六 归并排序 等等
Java排序可视化页面是一种用于教学和理解排序算法的强大工具。它通过图形化的方式展示了排序过程,使得用户能够直观地看到冒泡排序、选择排序和插入排序这三种基础排序算法的工作原理。接下来,我们将深入探讨这些...
### Java排序方法面试知识点详解 在Java编程领域中,排序算法是面试中常见的技术考察点之一。本篇文章将深入分析几种基本的排序算法,并通过具体的Java代码示例来阐述每种算法的特点及其应用场景。 #### 1. 插入...
Java排序算法是编程面试和笔试中常见的考察点,掌握这些算法对于提升编程能力和解决实际问题至关重要。本篇文章将深入探讨几种主要的Java排序算法及其特点。 1. **插入排序** - **直接插入排序**:将每个元素依次...
这个"Java排序算法包"提供了对多种排序算法的支持,并且允许用户根据自己的需求自定义比较条件,使得排序功能更加灵活。 1. **排序算法基础**: - 排序是指将一组数据按照特定的顺序进行排列的过程。常见的排序...
Java排序是程序设计中常见的操作,它涉及到一系列的算法,用于对数组或列表中的元素进行升序或降序排列。本文主要介绍几种经典的排序算法,包括插入排序、交换排序、选择排序、归并排序和基数排序,并分析了如何根据...
java代码-使用java解决java排序之-快速排序的问题的源代码 ——学习参考资料:仅用于个人学习使用!
执行语句:java sort <输入方式> <图形界面/非图形界面选择> <待排序数列> 例: java sort 0 643 323 12 3 523 23 //命令行输入数据并排序 java sort 1 1 //非图形界面下手动输入数据并排序 java sort 1 2 //手动...