|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/*我主要是不会实现其功能,遇到两个指针的算法就不知道在main()里面用什么来实现它。先谢谢各位了!*/
#include <stdio.h>
#include <iostream>
using namespace std;
#define maxSize 30
//顺序表结构体的定义
typedef struct {
int data[maxSize];
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[i]; //第一个元素作为参考
while ( i < j ){
// j从右往左扫描
while( i < j && L.data[i] > temp )
j--;
if( i < j ){
L.data[i] = L.data[j];
i++;
}
// i从左往右扫描
while( i < j && L.data[i] < temp )
i++;
if( i < j ) {
L.data[j] = L.data[i];
j--;
}
}
L.data[i] = temp;
}
//问题在这,不知怎么实现功能
int main(){
Sqlist L;
int i, j;
int a[8] = {4, 3, 8, 6, 7, 1, 5, 0};
Move( L );
for( i = 0, j = 7; i < j; i++, j--) {
printf("%d", a[i]);
}
return 0;
}
Kitty喜欢小鱼干 发表于 2018-9-17 12:13
还没有呢!请版主帮帮忙,谢谢!
顺序存储结构就是数组,不需要特别定义。你要的答案其实是快速排序。甲鱼的数据结构与算法,97集。不好意思,电脑出了点问题,用手机不方便上代码。
|
|