`
iluoxuan
  • 浏览: 579772 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

冒泡和快速排序java

 
阅读更多

1: 冒泡最简单一种:

/**
     * 算法效率o(n*n)
     * @param array
     * @return
     */
    public void bubbleSort(int[] array) {
        if(array == null) {
            throw new IllegalArgumentException("array can not be null");
        }
        int size=array.length;
        for(int i=0; i < size; i++) {
            for(int j=i + 1; j < size; j++) {
                swap(array, i, j);
            }
        }
    }

private void swap(int[] array, int i, int j) {
        if(array[i] < array[j]) {
            int temp=array[i];
            array[i]=array[j];
            array[j]=temp;
        }
    }

 2: 快速排序 

 原理:0: 一般取第一个数作为基数BASE, left,right分别指向开头和结尾

           1:从right 开始取arry[right] 和BASE比较,如大right++,如小arry[left]=arry[right]

           2: 从left开始取arry[left]和BASE比较,如小left++,如大arry[right]=arry[]left]

          3: left=right 时arry[left]=BASE, 开始递归

/**
     * 快速排序
     * @param array
     * @return
     */
    public void quitSort(int[] array, int left, int right) {
        int temp=array[left];
        int i=left;
        int j=right;
        if(i >= j) {
            return;
        }
        while(i != j) {
            while(j > i && array[j] >= temp) {
                j--;
            }
            if(j > i) {
                array[i]=array[j];
            }
            while(j > i && array[i] <= temp) {
                i++;
            }
            if(j > i) {
                array[j]=array[i];
            }
        }
        array[i]=temp;
        quitSort(array, left, i - 1);
        quitSort(array, i + 1, right);

    }

 

 

分享到:
评论

相关推荐

    JAVA冒泡排序和快速排序算法

    在JAVA中,实现这两种排序算法可以使用面向对象的特性,创建一个类如`MaopaoKuaisu.java`,在这个类中定义两个方法,分别实现冒泡排序和快速排序。类的结构可能如下: ```java public class MaopaoKuaisu { public...

    java算法,快速排序、冒泡排序、选择排序

    java算法,快速排序、冒泡排序、选择排序 快速排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51822361 冒泡排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51819045

    冒泡和选择排序Java代码实现

    总结来说,冒泡排序和选择排序都是简单且易于理解的排序算法,它们在实际应用中可能不如更高效的算法(如快速排序、归并排序)常见,但对于初学者来说,它们是理解排序算法和编程逻辑的良好起点。在Java中实现这两种...

    冒泡归并和快速排序java源码

    这里我们关注的是三种经典的排序算法:冒泡排序、归并排序和快速排序。这些排序算法各有特点,适应不同的场景需求。 **冒泡排序(Bubble Sort)** 冒泡排序是一种简单的排序算法,它通过重复遍历待排序的列表,比较...

    课程设计《冒泡排序和快速排序的交互动画》图形化显示

    《冒泡排序与快速排序的交互动画》课程设计是一个基于Java编程语言的项目,它通过图形化的方式展示了这两种基础排序算法的工作原理。这个项目利用了JavaFX库,这是一个强大的工具,可以创建丰富的用户界面和交互式...

    JAVA排序大全 冒泡 快速 选择 归并排序

    JAVA排序大全 冒泡 快速 选择 归并排序

    java版冒泡排序,插入排序,堆排序,快速排序,归并排序,希尔排序,桶排序

    堆排序和快速排序在中大规模数据上表现良好,但快速排序的不稳定性和堆排序的空间复杂度是需要注意的问题;归并排序和希尔排序在稳定性上有优势,而桶排序则对输入数据分布有特定要求。在实际应用中,根据数据特性...

    JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...

    冒泡法对数组排序java

    对整型数组进行冒泡法排序,java实现,冒泡对整型数组进行冒泡法排序,java实现,冒泡

    冒泡排序、快速排序和二分法查找的分析 Java

    ### 冒泡排序、快速排序和二分法查找的分析:Java实现 #### 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列...

    排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht

    排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht

    java冒泡排序java冒泡排序集锦方法!

    `Collections.sort()` 是 Java 中一种快速且高效地对集合(如 ArrayList)进行排序的方法。可以自定义比较器来指定排序规则。 **示例代码分析**: ```java public class Main { public static void main(String[] ...

    java 冒泡排序 数组冒泡排序

    冒泡排序是一种基础且经典的排序算法,它通过不断交换相邻两个元素的位置,使得每一次遍历都能将当前未排序...在实际开发中,对于大规模数据的排序,我们通常会选择更高效的排序算法,如快速排序、归并排序或堆排序。

    java快速排序、冒泡排序、插入排序示例

    本篇文章将详细讲解快速排序、冒泡排序和插入排序这三种常用的排序算法,并通过Java代码示例进行演示。 **快速排序** 快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare于1960年提出。其基本思想是...

    Java冒泡排序算法

    - 在最坏的情况下,冒泡排序的时间复杂度为O(n^2),与快速排序等高效算法相比性能较差。 #### 六、适用场景 由于冒泡排序的效率较低,通常不适用于大数据量的排序任务。但在数据量较小或者几乎已经排好序的情况下...

    java冒泡排序、快速排序、二分查找

    Java 中的排序算法包括冒泡排序、快速排序等,而查找算法则有二分查找等。这些算法都是 Java 开发中非常重要的基础知识。本文将对冒泡排序、快速排序、二分查找进行详细的分析和图解。 冒泡排序 冒泡排序是一种...

    多线程实现冒泡排序和快速排序

    本文将深入探讨如何使用多线程来实现冒泡排序和快速排序这两种经典的排序算法,这对于初学者来说是一次很好的学习机会。 首先,让我们理解冒泡排序。冒泡排序是一种简单直观的排序算法,它的基本思想是通过重复遍历...

    用java实现冒泡排序法

    在实际应用中,我们通常会根据具体场景选择更适合的排序算法,例如快速排序、归并排序等,它们在处理大数据量时具有更好的性能。 总结来说,Java实现冒泡排序主要涉及数组操作、循环结构以及条件判断。理解冒泡排序...

    Java-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结.md

    Java-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结 Java-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结 Java-快速排序、冒泡排序和堆排序三种排序讲解、对比及总结

    JAVA快速,选择,冒泡数组排序

    本主题将详细介绍三种基本的排序算法:快速排序、选择排序和冒泡排序,以及它们在Java中的实现。 1. **快速排序**: 快速排序是一种高效的分治算法,由C.A.R. Hoare在1960年提出。其主要思想是通过一趟排序将待排...

Global site tag (gtag.js) - Google Analytics