快速排序+冒泡排序
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]排序算法(冒泡排序,选择排序,插入排序,快速排序,计数排序)