本文主要是介绍UVa 10152 - ShellSort 龟壳排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
自己一开始用最笨的方法,一个一个的移动,结果费了半天的时间还超时了,果断不知道怎么做了,上网参考了一下大神的代码,才知道这题如此的坑爹。。还是水平不行,别的不多说了
参考:http://www.cppblog.com/wuxu/archive/2011/11/22/160719.aspx
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define MAX_SIZE 1000
#define LEN 100
int main()
{char one[MAX_SIZE][LEN],two[MAX_SIZE][LEN];int cases,N,n,i,j;scanf("%d",&N);while(N--){cin>>n;getchar();for(i=0;i<n;i++) /*输入待排数列*/gets(one[i]);for(i=0;i<n;i++) /*输入目标数列*/gets(two[i]);i=n-1;j=n-1;while(i>=0){if(!strcmp(one[i],two[j]))j--;i--;}/*一样的时候目标数列栈底指针才移动*/for(;j>=0;j--)printf("%s\n",two[j]);printf("\n");}return 0;
}
这篇关于UVa 10152 - ShellSort 龟壳排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!