zoukankan      html  css  js  c++  java
  • C语言实现快排

    #include <stdio.h>
    
    void swap(int *pa, int *pb)
    {
        int t = *pa;
        *pa = *pb;
        *pb = t;
    }
    
    int partion(int *array, int begin, int end)
    {
        if (array == NULL || begin < 0 || end < 0)
            return -1; 
        int pivot = array[end];
        int small = begin -1; 
        for(int i = begin; i < end; i++ ){
            if(array[i] <= pivot) {
                ++small;
                if(small != i){ 
                    swap(&array[small], &array[i]);
                }   
            }   
        }   
        swap(&array[++small], &array[end]);
        return small;
    }
    
    void qsort(int array[], int begin, int end)
    {
        if (end == begin)
            return;
        int index = partion(array, begin, end);
        if (index == -1) 
            return;
        if (index > begin)
            qsort(array, begin, index - 1); 
        if (end > index)
            qsort(array, index + 1, end);
    }
    
    void display(int a[], int n)
    {
        for(int i = 0; i < n; i ++) 
            printf("%d ", a[i]);
        printf("
    ");
    }
    
    int main()
    {
        int a[] = {5, 4, 3, 2,6};
        int n = sizeof(a)/sizeof(a[0]);
        display(a, n); 
        qsort(a, 0, n -1);
        display(a, n); 
    }
    

      

  • 相关阅读:
    Java EE部分-- 各框架对比与项目优化
    Java EE部分--Mybatis
    Java EE部分--MVC
    Java EE部分--Hibernate、Struts
    Java EE部分--spring(二)
    Java EE部分--spring(一)
    IO和NIOAIO
    JDK、 反射

    线程(二)
  • 原文地址:https://www.cnblogs.com/moxiaopeng/p/4849848.html
Copyright © 2011-2022 走看看