`
topkaiser
  • 浏览: 977 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java 几种经典排序算法

阅读更多
在本文中,我们来学习在程序当中常用的集中算法,以java程序为例,每种算法我们都采用一个实例进行讲解。

1、插入排序
    基本思路:在每次循环中把一个元素插入到已经排序的部分序列里的合适位置,使得到的序列仍然是有序的。
  
   int a[] = {30,20,50,6};
   int tmp;
   int j;
   for (int i = 1; i < a.length; i++) {
       tmp = a[i];
       for (j = i-1; j>=0 && a[j] > tmp; j--) {
	   a[j + 1] = a[j];
	   a[j] = tmp;
       }
   }
   


   描述:
    a、整数数组,在外层循环的时候,我们从下标为1的数字开始循环(由于是把当前下标的数字与前面的做比较,所以前边下标为0的整数我们就可以把它看成是一个有序的数组即可),取当前下标的值,并且存储到临时变量里边;
    b、然后把当前值与前边排序好的数字做循环比对,从大到小比对,如果下标对应值大于临时变量值,那么,我们就把该值的下标增加1(即向后移动一位),并且把临时变量赋值给小下标对应的值,直到小数组循环到下标为0或者临时变量大于等于小循环下标对应的值为止;
    c、此为插入排序,插入排序是相对循环次数最少的算法,比冒泡排序效率要高;

2、冒泡排序
    基本思路:按照从前到后或者从后到前的顺序,两两数据进行比较,如果不符合制定的规则(即从大到小排序或者从小到大排序)怎么两个数字相互交换位置,直到所有数字都按照制定的规则排序为止;
   
    int a[] = {30,20,50,6};
    int tmp;
    int j;
    for (int i = 0; i < a.length; i++) {
        tmp = a[i];
        for (j = i+1; j < a.length; j++) {
            if(a[i] > a[j]){
                a[i] = a[j];
                a[j] = tmp;
                tmp = a[i];
            }
        }
    }
    

    a)先是外循环,后是内循环,外循环的原则是从下边的最小值到下标的最大值,内循环的原则是,从外循环的下标+1开始向上循环,循环过程中,如果遇见外循环中的当前值比内循环中的当前值大,那么就把两个下标的值进行交换;

3、选择排序
   基本思路:分为外循环和内循环,外循环从最大下标开始循环,内循环从下边为1开始循环,一直循环到外循环的当前下标,挑选出本次内循环中值最大的下边,然后,如果值最大的下标不等于外循环的当前下标,那么就把外循环当前下标的值与最大值下标的值进行交换,这样循环下去,每次都选择出未排序的数组中最大的值,放到内循环最大下标处,这样就是选择排序,我们可以理解为每次循环都选择出最大值的下标,内循环接受后再进行值交换,与冒泡排序不同的是,冒泡排序是每次遇见非指定循序的值,就进行值交换,所以,在执行效率上,选择排序对于系统的开销更小一点;
  
   int a[] = { 30, 10, 40, 5 };
   for (int i = a.length; --i >= 0;) {
      int largest = 0;
      for (int j = 1; j <= i; j++) {
         if (a[largest] < a[j]) {
            largest = j;
         }
      }
      if (largest != i) {
         int T = a[largest];
         [largest] = a[i];
         a[i] = T;
      }
   }
   

  
分享到:
评论

相关推荐

    JAVA几种常用的排序算法

    JAVA几种常用的经典的排序算法 冒泡 选择 快速 shell 堆排序

    Java几种常见的排序算法

    Java几种常见的排序算法

    几种经典排序算法的Java实现

    ### 几种经典排序算法的Java实现 #### 排序算法概述 排序是计算机科学中的基本操作之一,用于处理一组数据元素(或记录),通过排序操作使得这些元素按照一定的关键字顺序排列。根据不同的应用场景和需求,排序...

    用Java实现几种常见的排序算法

    根据提供的文件信息,本文将详细介绍如何使用Java语言来实现几种常见的排序算法,包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。这些排序算法在...

    Java几种常见的排序算法(经典收藏)

    根据给定的文件信息,我们可以深入探讨几种在Java中实现的经典排序算法,这些算法是数据结构与算法领域的重要组成部分,广泛应用于各种计算机科学场景。以下是对插入排序(Insertion Sort)、冒泡排序(Bubble Sort...

    java编写的几种排序算法

    本文将深入探讨在Java中实现的几种常见排序算法:冒泡排序、快速排序以及堆排序。 1. **冒泡排序(Bubble Sort)** 冒泡排序是最简单的排序算法之一,通过重复遍历数组,比较相邻元素并交换位置,直到没有任何一对...

    Java几种排序方法

    根据给定的信息,本文将详细介绍Java中的四种基本排序算法:冒泡排序、插入排序、快速排序和选择排序。...以上四种排序算法各有优缺点,适用场景也不同。在实际应用中,根据具体需求选择合适的排序算法是非常重要的。

    几种经典的排序算法java实现

    冒泡排序、快速排序、直接插入排序、简单选择排序 等经典算法的思想介绍,大白话简单易懂。并用java实现。代码拿去即可用,不需做任何修改! 部分内容: /** * 快排:O(n*logn);如果是从小到大排序; * 思想:选...

    Java几种排序算法

    本文将详细介绍Java中常见的几种排序算法,包括冒泡排序、快速排序以及选择排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,它的主要思想是通过不断比较相邻元素并交换位置,使得较大的元素逐渐“浮”到...

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

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    Java实现几种常见排序方法

    ### Java 实现几种常见排序方法 #### 泡泡排序(Bubble Sort) ...以上是几种常见的排序算法在 Java 中的具体实现,每种算法都有其特点和适用场景。在实际应用中可以根据具体需求选择最合适的排序算法。

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

    本文将对几种经典的排序算法进行简要介绍和分析。 1. **插入排序**: 插入排序分为直接插入排序和折半插入排序。直接插入排序是将每个元素逐个插入已排序部分,而折半插入排序则是利用二分查找减少比较次数。希尔...

    用Java实现几种常见的排序算法.txt

    根据提供的文件信息,我们可以总结出该文档主要涉及了五种基于...以上就是关于这五种排序算法的介绍及其基于Java的实现方式。这些排序算法各有优缺点,适用于不同的场景,了解并掌握它们能够帮助开发者更好地解决问题。

    Java所有排序算法大全

    本文将深入探讨Java中常见的几种排序算法,包括它们的工作原理、优缺点以及如何在实际编程中应用。 首先,我们来看`BubbleSortAlgorithm.java`,它实现的是冒泡排序。冒泡排序是一种简单的交换排序,通过重复遍历...

    Java常用8大排序算法

    除了以上介绍的四种排序算法外,Java中还有以下几种常用的排序算法: 1. **冒泡排序**:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。遍历所有元素之后,最大的元素就会被放到最后的位置上。然后...

    java 几种常用的排序算法

    ### Java几种常用的排序算法 在Java编程语言中,排序算法是数据处理中不可或缺的一部分,它不仅可以帮助我们组织数据,还能提高程序效率。本篇文章将详细介绍几种常用的Java排序算法:选择排序、冒泡排序以及插入...

    java最常见的几种排序

    java排序算法,包括冒泡、插入、快速、选择等四种最常见的排序算法

    几种内部排序算法的Java实现

    基数排序(Radix Sort)是一种非比较型整数排序算法,根据每个位数分别进行一次排序,通常用于整数排序。基数排序不适用于本文的 Java 代码展示,因为涉及到额外的逻辑和数据结构。 总结: 这些内部排序算法各有...

    JAVA关于几种排序算法的性能比较.pdf

    这个文件"JAVA关于几种排序算法的性能比较.pdf"显然探讨了不同排序算法在Java环境下的效率对比,包括直接插入排序、直接选择排序、冒泡排序、希尔排序、快速排序和堆排序。这些排序算法各有优劣,适用于不同的场景,...

Global site tag (gtag.js) - Google Analytics