您的位置:首页 > 理论基础 > 数据结构算法

王朝 数据结构之元素位置交换

2017-05-28 08:08 239 查看
//主要元素的交换注意最后的交换
#include <iostream>
#include<cstdio>
#include<malloc.h>
#include<cstring>
using namespace std;
#define MaxSize 100
typedef struct
{
int data[MaxSize];
int length;
}SqList;
void InitList(SqList *&L)
{
L=(SqList*)malloc(sizeof(SqList));
L->length=0;
}
void CreatList(SqList *&L,int a[],int n)
{
int i;
L=(SqList*)malloc(sizeof(SqList));
for(i=0;i<n;i++)
L->data[i]=a[i];
L->length=n;
}
void movel(SqList *&L)
{
int i=0,j=L->length-1;
int pivot=L->data[0];
int tmp;
while(i<j)
{
while(i<j&&L->data[j]>pivot)
j--;
while(i<j&&L->data[i]<=pivot)
i++;
if(i<j)
{
tmp=L->data[i];
L->data[i]=L->data[j];
L->data[j]=tmp;
}
}
tmp=L->data[0];
L->data[0]=L->data[j];
L->data[j]=tmp;
printf("i=%d\n",i);
}
/*
void movel2(SqList *&L)
{
int i=0,j=L->length-1;
int pivot=L->data[0];
int tmp;
while(i<j)
{
while(i<j&&L->data[j]>pivot)
j--;
L->data[i]=L->data[j];
i++;
while(i<j&&L->data[i]<=pivot)
i++;
L->data[j]=L->data[i];
j--;
};
L->data[i]=pivot;
printf("i=%d\n",i);
}
*/
int main()
{
int n,i;
int a[MaxSize];
cin>>n;
SqList *L;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
InitList(L);
CreatList(L,a,n);
movel(L);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: