69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 100000
void jh(int a[]);
void print_array(int A[])
{
int i = 0;
for(i=0; i<MAX_NUM; i++)
{
if((i+1)%5 == 0)
printf("%d\n",A[i]);
else
printf("%d\t",A[i]);
}
}
void swap(int* a, int* b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
int partition(int A[], int start, int end)
{
int x = A[end];
int i = start-1;
int j = start;
for( ; j<end; j++)
{
if(A[j]<x)
{
i++;
swap(A+i, A+j);
}
}
swap(A+i+1, A+end);
return i+1;
}
void quicksort(int A[],int start, int end)
{
if(start<end)
{
int q = partition( A, start, end);
quicksort( A, start, q-1);
quicksort( A, q+1, end);
}
}
int main(int argc, char *argv[])
{
int i;
int A[MAX_NUM];
srand((unsigned int)time(NULL));
for(i=0; i<MAX_NUM; i++)
A[i] = rand()%MAX_NUM + 1;
printf("the original array is:\n");
print_array(A);
//quicksort(A, 0, MAX_NUM-1);
jh(A);
printf("after quick sort the array is:\n");
print_array(A);
return 0;
}
void jh(int a[])
{
int i,n,temp;
for(i = 0 ;i < MAX_NUM;i++)
{
for(n = i + 1; n < MAX_NUM;n++)
{
if(a[i] > a[n])
{
temp = a[i];
a[i] = a[n];
a[n] = temp;
}
}
}
}