首页 > 编程语言 > 详细

快排算法(c语言版)

时间:2017-01-21 22:37:22      阅读:338      评论:0      收藏:0      [点我收藏+]

#include <stdio.h>


void QuickSort(int * arr,int low,int high);

int findPost(int * arr,int low,int high);


void main(void){

int arr[7] = {-2, 1,-8, 0, -985, 4, -93};

QuickSort(arr,0,7);

for(int i = 0;i<7;i++){

printf("%d\n",arr[i]);

}

}

//快排算法

void QuickSort(int * arr,int low,int high){

int post;

if(low < high){

post = findPost(arr,low,high);

QuickSort(arr,low,post-1);

QuickSort(arr,post+1,high);

}


}

//查找节点位置

int findPost(int * arr,int low,int high){

int val = arr[low];

while(low < high){

while(arr[high] >= val && low < high){

high--;

}

arr[low] = arr[high];

while(arr[low] <= val && low <high){

low++;

}

arr[high] = arr[low];

}

arr[high] = val;

return high;

}


快排算法(c语言版)

原文:http://zhuangyong.blog.51cto.com/12459964/1893552

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!