zoukankan      html  css  js  c++  java
  • 编程算法

    高速排序算法 代码(C)


    本文地址: http://blog.csdn.net/caroline_wendy


    经典的高速排序算法, 作为一个编程者, 不论什么时候都要完整的手写.


    代码:

    /*
     * main.cpp
     *
     *  Created on: 2014.6.12
     *      Author: Spike
     */
    
    /*eclipse cdt, gcc 4.8.1*/
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int RandomInRange(int min, int max)
    {
        int random = rand() % (max - min + 1) + min;
        return random;
    }
    
    void Swap(int* num1, int* num2)
    {
        int temp = *num1;
        *num1 = *num2;
        *num2 = temp;
    }
    
    int Partition(int data[], int length, int start, int end)
    {
        if(data == NULL || length <= 0 || start < 0 || end >= length) {
        	return -1;
        }
    
        int index = RandomInRange(start, end);
        Swap(&data[index], &data[end]);
    
        int small = start - 1;
        for(index = start; index < end; ++ index)
        {
            if(data[index] < data[end])
            {
                ++ small;
                if(small != index)
                    Swap(&data[index], &data[small]);
            }
        }
    
        ++ small;
        Swap(&data[small], &data[end]);
    
        return small;
    }
    
    void QuickSort (int data[], int length, int start, int end) {
    	if (start == end) return;
    
    	int index = Partition(data, length, start, end);
    	if (index > start)
    		QuickSort(data, length, start, index-1);
    	if (index < end)
    		QuickSort(data, length, index+1, end);
    }
    
    int main(void)
    {
        int str[] =  {49, 38, 65, 97, 76, 13, 27, 49};
        QuickSort(str, 8, 0, 7);
        for (int i : str) {
        	printf("%d ", i);
        }
        printf("
    ");
    
        return 0;
    }
    

    输出:

    13 27 38 49 49 65 76 97 
    







  • 相关阅读:
    面向连接的网络应用程序--服务器端
    使用完整读写函数的网络应用程序
    套接字编程基础
    网络编程基础
    传输控制协议TCP
    UDP协议
    电子词典
    strtok()函数、fseek()函数、fwrite()函数、fread()函数的使用
    指针与数组
    软件推荐----RDO(Remote Desktop Organizer)
  • 原文地址:https://www.cnblogs.com/llguanli/p/6790174.html
Copyright © 2011-2022 走看看