我是靠谱客的博主 害怕人生,最近开发中收集的这篇文章主要介绍c语言:13.9、C语言指针实现快排算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define PRINT_INT_ARRAY(arr, len) 
for(int i=0; i<len; i++){ 
    printf("%d,", arr[i]); 
} 
printf("n");

void SwapInt(int *a, int *b){
    int temp = *a;
    *a = *b;
    *b = temp;
}
void Shuffle(int *array, int length) {
    srand(time(NULL));
    for(int i = length - 1; i > 0; --i){
        int random_number = rand() %i;
        SwapInt(array + i, array + random_number);
    }
}
int *Partition(int *low, int *high){
    int pivot = *(low + (high - low) / 2);
    int *p = low;
    int *q = high;

    while(1){
        while ( *p < pivot) p ++;
        while ( *q > pivot) q --;
        if ( p >= q) break;
        SwapInt(p, q);
    }
    return q;
}
void QuickSort(int *low, int *high){
    if( low >= high) return;
    int *partition = Partition(low, high);
    QuickSort(low, partition - 1);
    QuickSort(partition + 1, high);
}
#define PLAYER_COUNT 10
int main(){
    int *players = malloc(sizeof(int) * PLAYER_COUNT);
    if(!players){
        return 1;
    }
    for(int i=0; i<PLAYER_COUNT; i++){
        players[i] = i;
    }

    PRINT_INT_ARRAY(players,PLAYER_COUNT);
    Shuffle(players, PLAYER_COUNT);
    PRINT_INT_ARRAY(players,PLAYER_COUNT);
    QuickSort(players, players + PLAYER_COUNT - 1);
    PRINT_INT_ARRAY(players, PLAYER_COUNT);
    free(players);
    return 0;
}

最后

以上就是害怕人生为你收集整理的c语言:13.9、C语言指针实现快排算法的全部内容,希望文章能够帮你解决c语言:13.9、C语言指针实现快排算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部