“(线性表)以表头元素为界,小于它的在前,大于它的在后。”请各位帮个忙
/*我主要是不会实现其功能,遇到两个指针的算法就不知道在main()里面用什么来实现它。先谢谢各位了!*/#include <stdio.h>
#include <iostream>
using namespace std;
#define maxSize 30
//顺序表结构体的定义
typedef struct {
int data;
int Len;
}Sqlist;
void Move(Sqlist &L){
int temp;
int i = 0, j = L.Len - 1;
printf("请输入元素:\n");
scanf("%d", &L.Len);
temp = L.data; //第一个元素作为参考
while ( i < j ){
// j从右往左扫描
while( i < j && L.data > temp )
j--;
if( i < j ){
L.data = L.data;
i++;
}
// i从左往右扫描
while( i < j && L.data < temp )
i++;
if( i < j ) {
L.data = L.data;
j--;
}
}
L.data = temp;
}
//问题在这,不知怎么实现功能
int main(){
Sqlist L;
int i, j;
int a = {4, 3, 8, 6, 7, 1, 5, 0};
Move( L );
for( i = 0, j = 7; i < j; i++, j--) {
printf("%d", a);
}
return 0;
} 很抱歉,楼主。首先我没能太明白你问题是要干什么。其次,你的main函数中,只是对线性表L定义了一下,都没能对它进行初始化等任何操作,后面有直接打印出一个数组a,这样是肯定得不到相应的结果的。
我建议你能不能将给一组测速数据我看看,我再来和你一起探讨是哪些地方的问题 Xia_SK 发表于 2018-8-6 19:04
很抱歉,楼主。首先我没能太明白你问题是要干什么。其次,你的main函数中,只是对线性表L定义了一下,都没 ...
题目是:有一个顺序表L,其元素为整型数据,设计一个算法,将L中所有小于表头元素的整数放在前半部分,大于表头元素的部分放在后半部分。
Xia_SK 发表于 2018-8-6 19:04
很抱歉,楼主。首先我没能太明白你问题是要干什么。其次,你的main函数中,只是对线性表L定义了一下,都没 ...
我不晓得怎么上传图片(抱歉),但是测出的数据总是4386。总是这一组数。 C:\Users\LXY\Desktop 路过看看{:10_256:} 路过学习{:10_245:} 学习学习 小白路过 支持楼主!楼主加油! 支持 在学习中 {:9_236:} {:9_226:} whdd 发表于 2018-9-16 15:38
兄弟,这么给我面子的吗!时常来访。6哇! Kitty喜欢小鱼干 发表于 2018-9-16 19:01
兄弟,这么给我面子的吗!时常来访。6哇!
这个解决了? claws0n 发表于 2018-9-16 22:54
这个解决了?
还没有呢!请版主帮帮忙,谢谢!
Kitty喜欢小鱼干 发表于 2018-9-17 12:13
还没有呢!请版主帮帮忙,谢谢!
顺序存储结构就是数组,不需要特别定义。你要的答案其实是快速排序。甲鱼的数据结构与算法,97集。不好意思,电脑出了点问题,用手机不方便上代码。 claws0n 发表于 2018-9-17 14:00
顺序存储结构就是数组,不需要特别定义。你要的答案其实是快速排序。甲鱼的数据结构与算法,97集。不好意 ...
好的,快速排序我懂,谢谢版主{:5_95:}!之前还不知道什么意思呢。{:5_99:}
页:
[1]