快速排序+冒泡排序

Posted 小磊同学的备忘录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序+冒泡排序相关的知识,希望对你有一定的参考价值。

这两种排序方法是我最常用的,

快速排序适用于大量数据进行排序,不稳定,时间复杂度为O(nlogn)

冒泡排序适用于少量数据进行排序,稳定,时间复杂度为O(n2)

快速排序(挖坑法+分治):

对挖坑填数进行总结

1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。

2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。

3.i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。

4.再重复执行2,3二步,直到i==j,将基准数填入a[i]中。

public static void Qsort(int arr[],int l,int h){
if(l<h)
{
int i=l,j=h;
        int x=arr[l];
        while (i<j) {
while (i < j && arr[j] >= x) j--;
            if (i < j) arr[i++]=arr[j];
            while (i<j && arr[i]<x) i++;
            if (i<j) arr[j--]=arr[i];
        }
arr[i]=x;
        Qsort(arr,l,i-1);
        Qsort(arr,i+1,h);
    }
}

冒泡排序(百度百科):

public static void BubbleSort(int arr[],int size){
    for (int i = 0; i <size-1 ; i++) {
        for (int j = 0; j <size-1-i ; j++) {
            if(arr[j]>arr[j+1]){
                int tmp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tmp;
            }
        }
    }
}


以上是关于快速排序+冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序与快速排序

[leetcode]排序算法(冒泡排序,选择排序,插入排序,快速排序,计数排序)

总结:大厂面试常考手撕代码 —— JavaScript排序算法(冒泡排序选择排序插入排序快速排序)

四种排序算法实现

java冒泡排序和快速排序代码

数组排序代码,冒泡排序&快速排序&选择排序