王朝 数据结构之元素位置交换
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; }
相关文章推荐
- 【学习点滴-数据结构-单链表】交换单链表中任意两个元素
- 数据结构顺序表应用4-2:元素位置互换之逆置算法(数据改进)
- 数据结构题典007:顺序表中元素块的位置交换(ANSI C)
- 数据结构——交换二叉树中所有结点的左右子树(所有结点换位置)
- 可变长度数据存储结构动态删除元素
- [C++]数据结构:从m叉搜索树谈到B-树的结构特点、阶数、高度、元素个数之间的关系
- opencv2.x新数据结构cv::Mat访问元素的方法
- 结构定义中元素位置排列问题
- 让Ext.util.MixedCollection 中的指定数据交换位置
- 一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程
- jQuery 交换两个元素位置
- 结构体内数据元素对齐
- 数据结构课程设计:括号匹配问题(实现检验匹配并输出不匹配的位置)
- sdut.acm 2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构与算法之2-19 找出主要元素
- 数据结构之单链表在第i个元素之前插入元素的算法
- 结构之美:查找单链表指定位置结点的数据
- 结构之美:删除单链表指定位置的数据
- 【学习点滴-数据结构-单链表】 求单链表的中间元素和倒数第k个元素
- 数据结构之单链表取第i个元素的算法