zoukankan      html  css  js  c++  java
  • 快速排序、冒泡排序

    我目前最常用的两种排序:冒泡排序和快速排序

    比较一下他们的性能:

     1 #include<stdio.h>
     2 
     3 void QuickSort(int * a,int left,int right)
     4 {
     5     if(left>right)
     6     {
     7         return;
     8     }
     9     int stand=a[left];
    10     int i=left;
    11     int j=right;
    12     //得到基准数位置 
    13     while(i!=j)
    14     {
    15         while(i<j&&a[j]>=stand)
    16         {
    17             --j;
    18         }
    19         while(i<j&&a[i]<=stand)
    20         {
    21             ++i;
    22         }
    23         if(i<j)
    24         {
    25             int temp=a[i];
    26             a[i]=a[j];
    27             a[j]=temp;            
    28         }
    29     }
    30     //将基准数放入找出的位置 
    31     a[left]=a[i];
    32     a[i]=stand;
    33     //递归处理 
    34     QuickSort(a,left,i-1);
    35     QuickSort(a,i+1,right);
    36     return;
    37 }
    38 
    39 void  BubbleSort(int * a,int n)
    40 {
    41     for(int i=0;i<n-1;i++)
    42     {
    43         for(int j=0;j<n-i-1;j++)
    44         {
    45             if(a[j]>a[j+1])
    46             {
    47                 int temp=a[j];
    48                 a[j]=a[j+1];
    49                 a[j+1]=temp;
    50             }
    51         }
    52     }
    53 }
    54 
    55 int main()
    56 {
    57     int * a=new int[10000];
    58     for(int i=0;i<10000;i++)
    59     {
    60         a[i]=10000-i;
    61     }
    62     QuickSort(a,0,9999);
    63     //BubbleSort(a,9999);
    64 /*    for(int i=0;i<10000;i++)
    65     {
    66         printf("%d
    ",a[i]);
    67     } */
    68     return 0;
    69 }

    运行结果显示:

    在数据量较小时冒泡排序和快速排序性能差不多,冒泡有时性能还会更高些,可能是因为快排用的递归要函数出入栈的原因。。。。。。

    但随着数据量的增大,快速排序的性能会比冒泡高得多。

    数组长度为10000时排序耗时(以最复杂情况测试)

    快速排序:

    冒泡排序:

  • 相关阅读:
    DAY7-面向对象之封装
    Java遇到的问题、错误——持续更新
    008单例、继承、final
    java一些使用
    2.1端口扫描器
    PyCharm设置
    常用算法
    PyCharm最新2018激活码,最新方法
    004数组
    042多进程
  • 原文地址:https://www.cnblogs.com/flypie/p/4926028.html
Copyright © 2011-2022 走看看