quick_sort(快速排序)c语言实现

原创 2015年07月08日 09:56:21

晚上看算法导论,复习了一下快速排序。

快速排序最坏运行效率为o(n2),就是它已经排序好的情况下。

算法c语言代码如下

/*************************************************************************
    > File Name: quick_sort.c
    > Author: wayne
    > Mail: @163.com 
    > Created Time: 2015年07月07日 星期二 10时05分00秒
    思想:
    1,在数组中找到一个基准
    2.分区操作,小于基准的移到左边,大于基准的移到右边
    3.递归实现步骤2
 ************************************************************************/

#include<stdio.h>

void swap(int *a , int *b)
{
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}


void quick_sort(int a[],int low, int high)
{
    int i;
    i = patition(a, low-1, high);
    if(low < high)
    {
    quick_sort(a, low, i-1);
    quick_sort(a, i, high-1);
    }
    }

void print_array(int a[], int n)
{
    int i;
    for(i =0 ; i<n ;i++)
    {
        printf("%d  ", a[i]);
    }
}

int patition(int a[], int p, int q)
{
    int i;
    int j = p -1 ;
    int pivot = a[q-1];
    for(i=p; i<q; i++)
    {
        if(a[i] <= pivot)
        {
            ++j;
            swap(&a[i], &a[j]);
        }
    }
    swap(&a[j], &pivot);
    return j+1;
}


int main()
{
    int a[] = {3,1,5,7,2,4,6,9,20};
    int len;
    len = sizeof(a)/sizeof(int);
    printf("%d\n", len);
    print_array(a, len);
    printf("\n");

    quick_sort(a, 0, len);
    print_array(a, len);
    printf("\n");
    return 0;
}


深入解析快速排序(Quick Sort)

快速排序是由图灵奖获得者、计算机语言设计大佬C. A. R. Hoare在他26岁时提出的。说起C. A. R. Hoare老爷爷,可能很多人的第一印象就是快速排序,但是快排仅仅是他人生中非常小的成就...
  • utimes
  • utimes
  • 2016年08月10日 14:03
  • 1856

C++: quick sort(快排序)

到目前为止, 我们已经学习到了插入排序, 冒泡排序, 选择排序(selection)。 这些排序算法都是comparision based sorting algorithms(即涉及到元素大小的比较...
  • a130737
  • a130737
  • 2014年07月10日 08:26
  • 1571

排序算法之快速排序<Quick_Sort>及其C语言代码实现

快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比...
  • gl486546
  • gl486546
  • 2017年05月28日 16:33
  • 572

Quicksort

original website:http://www.algolist.net/Algorithms/Sorting/Quicksort Quicksort is a fast sorting a...
  • einstein991225
  • einstein991225
  • 2012年04月02日 22:05
  • 2418

数据结构 - 快速排序(Quick Sort) 详解 及 代码(C++)

快速排序(Quick Sort) 详解 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 快速排序(Quick Sort): 通过一趟排序...
  • u012515223
  • u012515223
  • 2014年04月25日 17:18
  • 4200

C语言sort函数如何使用

https://zhidao.baidu.com/question/1754076342544723828.html c语言和c++中,对于sort函数的使用,不同。c语言中没有预置的sort函...
  • niutingbaby
  • niutingbaby
  • 2017年06月23日 13:14
  • 6638

c/c++语言中sort函数的使用方法

orz先扯一点没用的~~~ 因为一直是习惯用c的,两年之中并没有用多少c++,觉得c++实现的东西c语言也可以实现。然而大二暑期集训大一的小鲜肉们的过程中(直到讲排序算法之前,我还一直觉得排序掌握很...
  • Scarlett_geng
  • Scarlett_geng
  • 2015年08月08日 22:56
  • 6057

sort.c(用C语言实现排序的实例)

/*  *文件:sort.c  *描述:举例使用选择排序和冒泡排序法  */ #include /*  *函数:SelectSort()  *说明:实现...
  • shayueqing
  • shayueqing
  • 2013年10月11日 08:20
  • 1496

C语言中Sort 以及C++中 qsort的简单对比

( 1 )sort  :         头文件       用法:sort( a, a+n , cmp) ; a为数组,结构体,队列,向量等等,n为其数组大小,cmp构造的排序原则; (2)...
  • u013856561
  • u013856561
  • 2015年05月03日 15:16
  • 558

Quick Sort(快速排序)

Quick Sort : 时间复杂度为O(logn) (一)kth largest element in an array https://leetcode.com/problems/kth-la...
  • joycetlm
  • joycetlm
  • 2018年01月19日 14:20
  • 55
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:quick_sort(快速排序)c语言实现
举报原因:
原因补充:

(最多只允许输入30个字)