设计并实现算法,将顺序表重新排列成以第一个元素为界的两部分,
前一部分元素的值都小于它,后一部分元素的值都大于或等于它。
估算所设计算法的时间复杂度和空间复杂度。
//程序:
#include "stdafx.h"
#define MAX 10
int a[MAX];
void swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
void sort()
{
int i = 0;
int original;
original = a[0];
for(int j=1; j<MAX; j++)
{
if(a[j] <= original)
{
i++;
if(i != j)
{
swap(&a[i], &a[j]);
}
}
}
swap(&a[0], &a[i]);
}
void main()
{
int i;
for (i=0;i<MAX;i++)
scanf ("%d",&a[i]);
sort();
for( i=0; i<MAX; i++)
评论1
最新资源