`
kula
  • 浏览: 57587 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • highill: 在baidu上看了 HTML5与FLASH的斗争和前景分析.d ...
    html5和flash
  • interjc: 问题是html5的标准如何才能完全同意,不要到时候搞得群雄割据 ...
    html5和flash
  • evanmeng: 谷歌地图上早就可以利用点评网的数据显示某地周围的餐饮信息。但我 ...
    openapi 简介

快速排序法研究

阅读更多
快速排序法 是目前排序算法中性能最好的一种算法。
中心思想是。将待排数据分成两堆。保证第一堆的数据小于第二堆。
然后递归的对这两堆数据进行排序。

code by kula
//author kula
//email  kulasama@gmail.com
#include<stdio.h>  

int portion(int   *sort_array,int   start,int   end)  
{  
    int   i=start;  
    int   j=end+1;  
    int   x=sort_array[start];  
    int   temp;  
    while(1)  
    {  
        while((sort_array[++i]<x)&&i<end);  
        while((sort_array[--j]>x)&&j>start);  
        if(i>=j)  
            break;  
        temp=sort_array[i];  
        sort_array[i]=sort_array[j];  
        sort_array[j]=temp;  
    }  
    sort_array[start]=sort_array[j];  
    sort_array[j]=x;  
    return j;
}

void quicksort(int* sort_array,int start,int end)  
{  
    if(start<end)  
    {  
        int middle=portion(sort_array,start,end);  
        quicksort(sort_array,start,middle-1);  
        quicksort(sort_array,middle+1,end);  
    }  
}  
  
void   main()  
{ 
    int i;
    int sort_array[]={1,4,5,7,223,344,122,34}; 
    quicksort(sort_array,0,7);
    for(i=0;i<8;i++) 
    {
        printf("%d ",sort_array[i]);
    }
    printf("\n");
}   
分享到:
评论

相关推荐

    C经典算法之快速排序法(三)

    通过对快速排序法的深入研究,特别是对轴选择方法的优化,我们可以显著提升排序的效率。本文介绍的方法不仅简洁易懂,而且在实际应用中表现出了良好的性能。对于计算机科学领域的学习者而言,理解和掌握这些细节是...

    快速排序算法matlab

    ### 快速排序算法在MATLAB中的应用与理解 #### 一、快速排序算法简介 快速排序是一种非常高效的...对于从事生物医学信号处理等领域的研究人员来说,掌握并灵活运用快速排序算法能够有效提高数据处理的效率和准确性。

    确定性快速排序与随机化快速排序的比较

    快速排序是一种高效的排序算法,在计算机科学和数学中被广泛研究。其基本原理是分治法策略,即将一组数据分为两个子序列并分别进行排序。快速排序期望的时间复杂度为O(nlogn),但在最坏的情况下,它的时间复杂度可...

    java实现快速排序演示

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide...通过深入研究这个项目,可以加深对快速排序以及分治策略的理解,并且掌握如何在实际编程中应用这些知识。

    快速排序 ,计算器

    标签中的“工具”可能暗示了该压缩包中包含了一个用于实现快速排序算法的工具,或者是一个包含源码的项目,供学习者研究和使用。文件名称列表中的"algrithms"可能是指一系列算法的实现,包括快速排序在内。通过阅读...

    数据结构线性表快速排序

    - **快速排序**:快速排序是一种非常高效的排序算法,采用分治法策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。 - **分区过程**:快速排序的核心是分区过程。选取一个基准值,通过一趟...

    快速排序算法程序

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。...这个C++实现提供了学习和研究快速排序的一个基础平台,但也留有改进的空间,对于有兴趣深入学习的开发者来说是一个不错的实践项目。

    字符的快速排序算法(12KB)

    快速排序的优化技巧,比如三数取中法选择基准,尾递归优化,以及如何处理小数组来避免递归的深度,都是值得深入研究的方面。此外,通过DEMO.FRM,我们可以了解如何将算法与用户交互相结合,提供直观的排序效果展示。

    用C实现快速排序、希尔排序、归并排序等排序算法

    本篇将详细探讨快速排序、希尔排序和归并排序这三种在C语言中常见的排序算法。 首先,我们来看快速排序(Quick Sort)。快速排序由C.A.R. Hoare在1960年提出,其基本思想是分治法。它的核心是选择一个基准元素,...

    一种快速的排序法—插入合并排序法

    ### 一种快速的排序法—插入合并排序法 #### 概述 在计算机科学领域,排序算法是一项基础且重要的技术,广泛应用于数据管理和处理过程之中。根据数据存储位置的不同,排序算法可以分为内排序和外排序两大类。本文...

    快速排序算法

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    利用汇编语言实现快速排序,汇编语言排序算法

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法,通过选取一个“基准”元素,将数组分为两个子数组,使得一个子数组的所有元素都小于基准,另一个子数组的所有...

    一个不会出现堆栈溢出的快速排序算法

    在描述中提到的算法就是这样的一个例子,它使用循环法进行快速排序,即使面对大型数组也能保持稳定性能。 实现这种循环快速排序的基本步骤如下: 1. 选择基准元素,通常可以选择数组的第一个元素或者随机选取。 2....

    一个比快速算法更快的算法,排序算法数据结构.pdf

    《探索超越快速排序的高效算法:FlashSort详解》 排序算法在计算机科学领域中占据着核心地位,尤其是在数据处理和分析中,其效率直接影响到程序的运行速度。快速排序(QuickSort)以其平均时间复杂度为O(n log n)而...

    适用于Delphi的完整文本数据快速排序去重代码,可以对几百万几千万数据快速处理

    快速排序的基本思想是分治法,通过选取一个基准元素,将数组分为两个子数组,然后递归地对这两个子数组进行排序。在处理几百万甚至几千万级别的数据时,快速排序能够提供比其他线性时间复杂度的排序算法更高的性能。...

    希尔排序 、 快速排序

    快速排序的基本思想是采用分治法,选取一个基准值,将待排序数组分为两部分:一部分的元素小于基准,另一部分的元素大于或等于基准。然后对这两部分递归地进行快速排序。快速排序的时间复杂度在平均情况下为O(n log ...

    c#快速排序和插入排序.zip

    快速排序和插入排序是两种广泛使用的排序算法,在C#编程语言中也有广泛应用。它们都是基础且重要的算法,对于理解和优化程序性能至关重要。 首先,我们来深入理解快速排序。快速排序是由英国计算机科学家C.A.R. ...

    冒泡、快速排序算法比较程序.zip_快速排序算法_排序算法比较_数据结构课程设计

    本项目着重探讨了两种经典的排序算法——冒泡排序和快速排序,并通过C语言进行了实现。这两种排序算法各有特点,理解它们的工作原理及其优缺点对于提升编程技能和理解算法效率至关重要。 **冒泡排序** 是一种简单...

    维吾尔文单词快速排序

    总的来说,"维吾尔文单词快速排序"是一个高效处理大量维吾尔文单词的工具,它利用了快速排序的高效性和虚拟列表的资源管理优势,对于研究和教学维吾尔文,或是需要处理大量维吾尔文数据的场景,都是非常实用的。

Global site tag (gtag.js) - Google Analytics