排序算法总结

简介: 排序算法总结


常用算法复杂度分析

                             

 

 

排序算法

1. 快速排序原理

  (1)定义一个基准元素base(我这里定义的是最左面的元素定位基准元素)

  (2)定义两个变量i和j,j先从右向左遍历,找到第一个比base小的数就停止,i再从左向右便利找到第一个比base大的数停止

  (3)交换i和j指向的元素

  (4)直到i和j指向同一个元素,将这个元素与基准元素交换

  递归求解即可

2. 时间复杂度:O(nlogn)

 

public class Qsort {
    public static void main(String[] args) {
        int a[]= {3,4,11,2,0,9,8,5,7};
        Quicksort(a,0,a.length-1);
        for (int i : a) {
            System.out.print(i+" ");
        }    
    }
    private static void Quicksort(int[] a, int left, int right) {    
        if(left>right)
            return;
        int i=left;
        int j=right;
        int base=a[left];
        while(i!=j) {
            while(a[j]>=base&&i<j)
                j--;
            while(a[i]<=base&&i<j)
                i++;
            int temp = a[i];
            a[i]= a[j];
            a[j]= temp;
        }
        a[left]=a[i];
        a[i]=base;
        Quicksort(a,left,i-1);
        Quicksort(a,i+1,right);
    }
}

 

 

原文链接:

https://www.cnblogs.com/minkaihui/p/4077888.html

https://www.cnblogs.com/flyingdreams/p/11161157.html

https://blog.csdn.net/liang_gu/article/details/80627548

 

标签: 算法与数据结构

目录
相关文章
|
4月前
|
搜索推荐 算法 数据处理
C++中的排序算法
C++中的排序算法
32 0
|
4月前
|
搜索推荐 算法 NoSQL
10-千奇百怪的排序算法
10-千奇百怪的排序算法
|
算法 搜索推荐 Java
TimSort——最快的排序算法
TimSort 算法是 Tim Peters 于 2001 年为 Python 语言创建的。该算法建立在插入排序和归并排序的基础之上,兼具插入排序和归并排序的优点。TimSort 的平均时间复杂度为 O(nlog(n)) ,最好情况 O(n) ,最差情况 O(nlog(n)) 。空间复杂度 O(n) ,是一个稳定的排序算法。
1419 0
TimSort——最快的排序算法
|
算法 搜索推荐 Java
常见排序算法详解(1)
前言 排序是我们在日常生活和工作中常见的一种操作。在计算机科学中,排序算法就是将一串或一组数据按照特定的顺序进行排列的算法。这些顺序可能是数字的升序或降序,也可能是字母或字词的字母顺序等。我们将探讨几种不同的排序算法,包括他们的原理、优缺点以及代码实现。
108 0
|
算法 搜索推荐 Java
常见排序算法详解(2)
(1) 算法过程 比较相邻的元素。如果第一个比第二个大(升序),就交换它们两个; 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数;
81 0
|
搜索推荐
常见的排序算法
在实际应用中,我们经常遇到需要将大量数据进行排序的问题,下边博主将带领大家认识常见的排序算法,相信通过这一篇文章让你能够掌握基本的排序算法,这些排序也是在面试笔试中的高频考点,让我们读完这篇文章,从此不做迷糊人!
87 0
常见的排序算法
|
搜索推荐 程序员 C语言
常见的排序算法(上)
时间如流水,今天就到初阶数据结构最后一个知识章节了,常见的排序算法!在进入这期之前,程爱打篮球的程序猿想说一句,如果有不懂的地方可以反复观看我之前的内容,再还有不懂可以直接找我,帮你安排的妥妥的!
常见的排序算法(上)
|
搜索推荐
快排序算法(中)
快排序算法(中)
120 0
快排序算法(中)
|
移动开发 人工智能 搜索推荐
排序算法总结
总结了常用的排序算法
|
搜索推荐 Java
常用排序算法总结
在计算器科学与数学中,一个排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定排序方式进行排列的一种算法。本文将总结几类常用的排序算法,包括冒泡排序、选择排序、插入排序、快速排序和归并排序,分别使用Java代码实现,简要使用图例方式介绍其实现原理。
6780 0