`

java排序

 
阅读更多
排序方法:
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排序.txt

    根据提供的文件信息,我们可以归纳出以下关于Java排序的相关知识点: ### 一、文件基本信息 - **文件名**:`java排序.txt` - **文件描述**:该文本文件主要介绍了几种常用的Java排序算法,并通过示例代码展示了...

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

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

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

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

    java排序代码大全

    根据给定文件中的标题“Java排序代码大全”以及描述与标签中的关键词如“Java排序”、“排序大全”和“算法”,本文将详细解读文件中所包含的几种排序算法的实现方式,并结合具体代码进行深入分析。 ### 快速排序...

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

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

    Java排序算法详细整理

    【Java排序算法详细整理】 在计算机科学中,排序算法是用于对一组数据进行排列的算法。在Java中,实现各种排序算法有助于理解数据结构和算法的原理,同时也能提高编程能力。以下是对Java中常见的几种排序算法的详细...

    面向对象java排序包

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

    java排序简单介绍

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

    Java排序算法大全

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

    JAVA排序汇总 各种排序

    在Java编程语言中,排序是数据处理中非常基础且重要的操作。本文将全面解析Java中的各种排序算法,帮助你理解并掌握它们的核心概念、实现方式以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序...

    Java排序算法源代码

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

    java排序大全.txt

    java排序算法大全 为了便于管理,先引入个基础类: 一 插入排序 二 冒泡排序 三,选择排序 四 Shell排序 五 快速排序 六 归并排序 等等

    java排序可视化页面

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

    java 排序 面试题

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

    面试笔试必用-必须掌握的Java排序算法

    Java排序算法是编程面试和笔试中常见的考察点,掌握这些算法对于提升编程能力和解决实际问题至关重要。本篇文章将深入探讨几种主要的Java排序算法及其特点。 1. **插入排序** - **直接插入排序**:将每个元素依次...

    Java排序算法包 支持自定义比较条件

    这个"Java排序算法包"提供了对多种排序算法的支持,并且允许用户根据自己的需求自定义比较条件,使得排序功能更加灵活。 1. **排序算法基础**: - 排序是指将一组数据按照特定的顺序进行排列的过程。常见的排序...

    Java排序Java排序.doc

    Java排序是程序设计中常见的操作,它涉及到一系列的算法,用于对数组或列表中的元素进行升序或降序排列。本文主要介绍几种经典的排序算法,包括插入排序、交换排序、选择排序、归并排序和基数排序,并分析了如何根据...

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

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

    Java排序(带图形界面)

    执行语句:java sort &lt;输入方式&gt; &lt;图形界面/非图形界面选择&gt; &lt;待排序数列&gt; 例: java sort 0 643 323 12 3 523 23 //命令行输入数据并排序 java sort 1 1 //非图形界面下手动输入数据并排序 java sort 1 2 //手动...

Global site tag (gtag.js) - Google Analytics