数据结构⑥:排序算法应用

9 篇文章 9 订阅
订阅专栏

一、要求:

给出n个学生的考试成绩表,每条记录由学号、姓名和分数和名次组成,设计算法完成下列操作:

设计一个显示对学生信息操作的菜单函数如下所示:


1、录入学生基本信息

2、直接插入排序

3、冒泡排序

4、快速排序

5、简单选择排序

6、堆排序

7、2-路归并排序

8、输出学生信息

0、退出


请选择:

算法设计要求:按分数从高到低的顺序进行排序,分数相同的为同一名次。输入的学生信息存入文件中,每选择一种排序方法,必须从文件中取出数据。

二、排序基本思想:

①直接插入排序:

  依次将一个待排序的记录按其关键字的大小插到已排好序的有序表中,从而得到一个新的,记录数增一的有序表。

具体过程:
  初始时R[1]自成一个有序区,无序区为R[2]~R[n].从i=2开始直至i=
n为止,依次将各R[i]插到当前的有序区R[1]~R[i-1]中,生成含有n个记录的有序区。
  当插入第i(i>=1)个记录时,前面的R[1]~R[i-1]已经排好序。此时,用R[i]的关键字与R[i-1],R[i-2],…,R[1]的关键字顺序进行比较,找到插入位置,将R[i]插入,原来位置及其以后的所有记录依次后移。

②冒泡排序:

  对于长度为n的待排序序列,从前向后,对相邻的两个元素两两进行比较,若是逆序,则交换两个元素的值,以此类推,直至对第n-1个记录和第n个记录进行比较为止。

③快速排序:

  通过一趟排序将待排序列记录分割成独立的两部分,其中一部分的关键字均不大于另一部分的关键字,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。

具体过程:
  对R[s],…,R[t]中的记录进行一趟快速排序,附设两个指针low,high,设置一个枢轴记录R[0]=R[s],pivockey=R[s].key。
令low=s,high=t,并保存low的记录;
  从high所指位置起向low所指位置方向搜索,找到第一个关键字不大于pivockey的记录,放在low位置处,并使low++;从low所指位置起向high所指位置方向搜索,找到第一个关键字不小于pivockey的记录,放在high位置处,并使high–。重复该步骤,知道low=high为止。
  将轴元素放在low处。再分别对两个子序列进行快速排序,直至每一个子序列只含有一个记录为止。

④简单选择排序:

  第i(1<=i<n)趟排序通过n-i次关键字的比较,在n-i+1个记录中选择具有最小关键字的记录,并和第i个记录进行交换。重复此操作n-1次,最终得到一个有序序列。

⑤堆排序:

  以大顶堆为例,将无需序列建成一个堆,得到关键字最大的记录,将堆顶元素与最后一个元素进行交换,将堆顶元素输出。从根结点开始,自上而下进行调整。将堆顶元素与左右子树的根结点中关键字较大者进行比较,若堆顶元素小于子树根结点的值,则堆顶结点与子树根结点交换。重复上述过程,直到该子树满足堆的性质为止。
重复上述过程,直至得到一个有序系列。

⑥2-路归并排序:

  把n个记录看成n个长度为1的有序子表;
  对相邻两个子表进行归并使记录按关键字有序排列,得到n/2个长度为2的有序子表。重复该步骤直到所有记录归并成一个长度为n的有序表为止。

三、代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSIZE 20  //学生最多人数
typedef struct{
	char num[20];  //学号
	char name[20];  //姓名
	int score;   //分数
}stu;
typedef struct{
	 stu R[MAXSIZE+1]; //0单元作为监视哨
	 int length;
}Sqlist;


void menu(){
	printf("**************************\n");
	printf("\t1. 录入学生基本信息\n");
	printf("\t2. 直接插入排序\n");
	printf("\t3. 冒泡排序\n");
	printf("\t4. 快速排序\n");
	printf("\t5. 简单选择排序\n");
	printf("\t6. 堆排序\n");
	printf("\t7. 2-路归并排序\n");
	printf("\t8. 输出学生信息\n");
	printf("\t0. 退出\n");
	printf("**************************\n");
	printf("请选择:\n");
}

void InputInformation(Sqlist &L){
	int i;
	FILE *fp;
	if((fp=fopen("stdinf.txt","w"))==NULL){
		printf("无法打开该文件!\n");
		return ;
	}
	printf("请输入学生人数:");  
    scanf("%d",&L.length);
	printf("请输入学生的学号,姓名,分数\n");
	for(i=1;i<=L.length;i++){
		scanf("%s%s%d",L.R[i].num,L.R[i].name,&L.R[i].score);
		fprintf(fp,"%8s%8s%8d\n",L.R[i].num,L.R[i].name,L.R[i].score);
	}//while
	fclose(fp);
}
void Readfile(Sqlist L){
	FILE *fp;
	int i;
	fp = fopen("stdinf.txt","r");
	for(i=1;i<=L.length;i++)  
        fscanf(fp,"%s %s %d\n",L.R[i].num,L.R[i].name,&L.R[i].score);  
	fclose(fp);
}
/********直接插入排序*********/
void InsertSort(Sqlist &L){
	int i,j;
	for(i=2;i<=L.length;i++)
		if(L.R[i].score > L.R[i-1].score){
			L.R[0] = L.R[i];  //R[i]为哨兵
			L.R[i] = L.R[i-1];
			for(j=i-2;L.R[0].score >L.R[j].score;j--)
				L.R[j+1] = L.R[j];
			L.R[j+1] = L.R[0];
		}//if
}
/***冒泡排序 ****/
void BubbleSort(Sqlist &L){
	int flag=1,i,j;
	for(i=1;i<=L.length && flag;i++){
		flag = 0;
		for(j=1;j<=L.length-i;j++)
			if(L.R[j].score < L.R[j+1].score){
				L.R[0] = L.R[j];	L.R[j] = L.R[j+1];
				L.R[j+1] = L.R[0];	flag = 1;
			}//if
	}//for
}
/****快速排序*****/
int Partition(Sqlist &L,int low,int high){
	int pivotscore = L.R[low].score;
	L.R[0] = L.R[low];
	while(low<high){
		while(low<high && L.R[high].score <= pivotscore)
			high--;
		if(low<high)
			L.R[low++] = L.R[high];
		while(low<high && L.R[low].score >= pivotscore)
			low++;
		if(low<high)
			L.R[high--] = L.R[low];
	}//while
	L.R[low] = L.R[0];
	return low;
}
void QSort(Sqlist &L,int low,int high){
	int pivotloc;
	if(low<high){
		pivotloc=Partition(L,low,high);
		QSort(L,low,pivotloc-1);
		QSort(L,pivotloc+1,high);
	}
}
void QuickSort(Sqlist &L){
	QSort(L,1,L.length);
}
/****简单选择排序****/
void SelectSort(Sqlist &L){
	int i,j,k;
	for(i=1;i<L.length;i++){
		k = i;
		for(j=i+1;j<=L.length;j++)
			if(L.R[k].score < L.R[j].score )
				k = j;
		if(i!=k){
			L.R[0] = L.R[k]; L.R[k] = L.R[i]; L.R[i] = L.R[0];
		}//if
	}//for
}
/******堆排序*******/
void HeapAdjust(Sqlist &L,int s,int m){
	int j;
	L.R[0] = L.R[s];
	for(j=2*s;j<=m;j*=2){
		if(j<m && L.R[j].score > L.R[j+1].score)    //沿k较小的结点向下筛选
			j++;                           //j为score较小记录的下标
		if(L.R[0].score <= L.R[j].score )
			break;
		L.R[s] = L.R[j]; s=j;
	}//for
	L.R[s] = L.R[0];  //插入
}
void HeapSort(Sqlist &L){
	int i,t;
	for(i=L.length/2;i>0;i--)   //建立初始堆
		HeapAdjust(L,i,L.length);
	for(i=L.length;i>1;i--){
		t = L.R[1].score; L.R[1].score = L.R[i].score; L.R[i].score = t;
		HeapAdjust(L,1,i-1);
	}
}
/******2-路归并排序******/
void Merge(Sqlist &L,int s,int m,int n){
	int i,j,k;
	Sqlist T;
	i=s; j=m+1; k=0;
	while(i<=m && j<=n)   //归并两个相邻的有序表
		if(L.R[i].score>=L.R[j].score)
			T.R[k++] = L.R[i++];
		else
			T.R[k++] = L.R[j++];
	while(i<=m)
		T.R[k++] = L.R[i++];
	while(j<=n)
		T.R[k++] = L.R[j++];
	for(i=s;i<=n;i++)    //将T表中的元素复制到表L中
		L.R[i] = T.R[i-s];
}
void MSort(Sqlist &L,int low,int high){
	int mid;
	if(low<high){
		mid=(low+high)/2;
		MSort(L,low,mid);
		MSort(L,mid+1,high);
		Merge(L,low,mid,high);
	}
}
void MergeSort(Sqlist &L){
	MSort(L,1,L.length);
}
/*****输出学生信息*****/
void show(Sqlist L){
	int i;
	int rank=1,index=0;
	FILE *fp;
	if((fp=fopen("stdinf.dat","w"))==NULL){
		printf("无法打开该文件!\n");
		return ;
	}
	printf("输出排名后所有学生的信息\n");
	printf(" 名次	姓名	学号	分数\n");
	for(i=1;i<=L.length;i++){
		printf("%6d%8s%7s%7d\n",rank,L.R[i].name,L.R[i].num,L.R[i].score);
		if(i<L.length && L.R[i].score==L.R[i+1].score)
			index++;
		else{
			rank+=index+1;
			index=0;
		}//else
	}
	fclose(fp);
}
/*******主函数********/
int main(){
	Sqlist L;
	int choice;
	while(1){
		menu();
		scanf("%d",&choice);
		switch(choice){
			case 1: InputInformation(L);break;
			case 2:	Readfile(L); InsertSort(L);break;
			case 3:	Readfile(L); BubbleSort(L);break;
			case 4: Readfile(L); QuickSort(L);break;
			case 5: Readfile(L); SelectSort(L);break;
			case 6: Readfile(L); HeapSort(L);break;
			case 7: Readfile(L); MergeSort(L);break;
			case 8: Readfile(L); show(L);break;
			case 0: return 0;
			default:printf("\n\t输入错误,请重新选择!\n");
		}//switch
	}//while
}

结果:
输入学生信息## 标题
排序
排序结果


Directions:

 仅代表初始数据结构时思路。

数据结构基础 排序算法(一) 概念篇
稚枭天卓
08-02 3974
这里对笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算法原理分析、图解/flash演示/视频演示、算法代码、笔试面试重点分析、笔试面试题等板块。 一、插入排序 1)算法简介        插入排序(Insertion Sort)的算法
数据结构上机 实验八:排序算法实现与比较
qq_54008392的博客
12-24 2199
实验目的和要求:熟悉多种排序算法,理解每种排序算法思想,掌握排序算法的基本设计方法,掌握排序算法时间复杂度和空间复杂度的分析方法。 实验内容: 1.对所讲过算法深入理解,应用随机函数和时间函数比较各种排序的运行时间。 2.实现双向冒泡排序(相邻两趟排序向相反方向冒泡)。 //文件名:excise6.cpp #include <stdio.h> #include <stdlib.h> #include <sys/timeb.h> #include <time.h
数据结构】排序(应用场景分析)
丧心病狂Loli控的博客
05-28 611
复杂度与稳定性 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度 稳定性 选择排序 O(n²) O(n²) O(n²) O(1) 不稳定 插入排序 O(n²) O(n²) O(n) O(1) 稳定 冒泡排序 O(n²) O(n²) O(n) O(1) 稳定 希尔排序 O(n)~O(n²) O(1) 不稳定 快速排序 O(nlog2n) O(n²) O(nlog2n) O(log2n) 不稳定 归并排序 O(nlog2n) O(nlog2n) O
数据结构之-----排序算法
hopegrace的博客
07-26 788
算法的稳定性:如果待排序的两个元素Ri,Rj,其对应的关键字keyi=keyj,且在排序前Ri在Rj的前面,如果排序后Ri还在Rj的前面,则称这种排序算法是稳定的,否则称排序算法是不稳定的。 内部排序和外部排序:内部排序是指在排序期间,元素全部存放在内存中的排序。外部排序是指排序期间元素无法全部同时存放在内存中,必须在排序过程中根据要求不断地在内外存之间移动的排序。 1.插入排序 1)插入排...
数据结构笔记--总结各种排序算法及其应用
xpu_zhouxin的博客
07-30 558
排序分为直接插入类排序、交换类排序、选择类排序和归并排序。 为了满足每个函数只有一个数组首地址、一个数组长度的要求,我们会对某些函数进行封装。 直接插入类排序:在一个已排好序的记录子集的基础上,每一步将下一个待排序的记录有序的插入到已排好序的记录子集中,直到将所有的待排记录全部插入为止。 直接插入排序:通俗点说,就是把第i个元素插入到前i-1个有序集合并使得插入之后的集合有序。具体做法
数据结构实训五——排序算法应用
我们都有光明的未来
12-23 931
实验目的: (1)熟练掌握常用的内排序方法并加以比较。 实验内容: 利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。要求: (1)至少采用三种方法实现上述问题求解(提示,可采用的方法有希尔排序、起泡排序、快速排序、选择排序、堆排序)。并把排序后的结果保存在不同的文件中。 (2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。 3.实验代码: #include<bits/stdc++.h> using namespace.
数据结构实践:10个核心课程设计实例,包括二叉树、排序算法
最新发布
04-19
数据结构是计算机科学中的基石,对于理解和实现复杂算法至关重要。"10个数据结构课程设计实例"资源包为学生和开发者提供了深入学习数据结构的机会,涵盖了从基础到高级的多个概念。该资源包包括: 1. **二叉树的...
数据结构作业:第10章排序题目.docx
12-17
排序算法数据结构中的一个基本概念,广泛应用于各种数据处理和分析领域。本篇作业总结了第10章排序题目,涵盖了直接插入排序、选择排序、冒泡排序、堆排序、快速排序、归并排序等多种排序算法。 1. 排序算法的...
数据结构算法应用 C++语言描述 原书第2版.pdf
12-14
数据结构算法应用 C++语言描述》第二版是一本深入探讨数据结构算法及其在C++编程中的实现的经典著作。这本书旨在帮助读者理解和掌握数据结构算法的基础知识,并通过C++语言来实践这些概念,提升编程能力。...
算法数据结构应用('''排序算法的实现''')
Mr.韩的博客
05-10 319
'''排序算法的实现''' import random def bubble_sort(L): '''冒泡排序的实现 O(n**2) 稳定算法 ''' for i in range(len(L)): for j in range(len(L) - i - 1): if L[j] &gt; L[j + 1]: ...
用C语言实现成绩的快速排序程序设计
07-18
问题描述〕给出n个学生的1门课程的考试成绩信息每条信息姓名分数组成,要求设计快速排序算法,进行: (1)按成绩排序; (2)输出形式为:张强 张平 曾芽 王华 孙军 李应 程滨 90 88 82 78 70 69 65 〔基本要求〕 学生考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕利用快速排序算法求解;
数据结构 多种内部排序算法应用
From now on...的Blogs
12-22 263
输入学生数据,每个学生有学号、姓名成绩,无序输入 按照学生成绩学生进行排序 这里有8个算法(有空会修改为9个) 有基于插入的 直接插入排序 二分寻找插入排序 希尔排序 有基于交换的 冒泡排序 快速排序 有基于选择的 简单选择排序 堆排序(树形选择排序) 有基于合并的 归并排序 还有一个可能会因为关键字类型而限制的简单暴力 桶排序 这些都是基...
数据结构算法之美》- 六大排序算法详解与应用
qq_22270363的博客
10-03 364
六大排序算法详解与应用。基于前Google工程师王争编写的著作《数据结构算法之美》,加以自身理解,编写而成。
数据结构】多种简单排序方法的应用(C语言实现)
一个学生の乱记
04-10 202
首先,判断0号下标元素是否和目标值相同,如果相同,直接返回0;如果不同,则我们将0号下标元素先保存起来,然后将目标值放到0号下标处;然后,我们从后向前查找,如果和目标值相同,则结束循环,否则向前走。1.现将InitList[]中的前半段记录用归并法排序后放在TempList[]的前半段中。2.再将InitList[]中的后半段记录用归并法排序后放在TempList[]的后半段中。依次输入%d个数据:\n"依次输入%d个数据:\n"依次输入%d个数据:\n"依次输入%d个数据:\n"
数据结构实验-排序算法应用
qq_62899367的博客
11-15 659
数据结构实验-排序算法应用。代码与课本稍有出入
数据结构实验之排序算法及其应用【附代码&实验成果】
米莱虾
04-14 5461
一、实验目的 1)理解并掌握各种常用内部排序算法的基本概念、思想和方法。掌握常用内部排序算法流程。 2)掌握常用的排序方法,深刻理解排序的定义和各种排序方法的特点。 3)通过实验观察不同方法的不同之处,记录并分析各种排序方法的结果。 二、实验环境 1)自备计算机,windows操作系统以及相关的编译器(如Devc++)。 三、实验要求 1)理解及熟练运用直接插入排序、快速排序、堆排序和归并排序、哈希排序等内部排序算法。 2)通过计数统计算法的关键字比较次数和关键字移动次数。 3)分析算法的时间复杂度、空间
数据结构】堆应用之堆排序
无意呢的博客
01-28 265
如何实现堆 堆排序 首先建立一个最大堆,然后将堆顶元素与末尾元素进行交换,使末尾元素最大。然后调整堆的大小(即堆元素-1),然后继续调整堆,再将堆顶元素与末尾元素交换,得到第二大元素。如此反复进行交换、重建、交换。直至堆剩下一个元素后将得到一个递增的有序序列。 Java版本实现 //堆排序 public void HeapSort(int[] a , int n ) { while(n ...
排序及其应用
chj65的博客
01-11 674
数据结构(实验C语言版) 排序及其应用 一、实验目的 (1)掌握在数组上进行各种排序的方法和算法 (2)深刻理解各种方法的特点,并能灵活运用 二、实验环境 硬件环境要求: PC机(单机) 使用的软件名称、版本号以及模块: VS2010或Visual C++ 6.0或Win-TC等。 三、实验内容 设计一个程序,针对关键字序列T={9,8,7,6,5,4,3,2,1,0},分别利用直接插入排序、希尔...
数据结构:排序(1)
blexsantos的博客
10-25 1379
王争数据结构11笔记 1、冒泡排序、插入排序、选择排序是基于比较的排序。时间复杂度为。 2、快排,归并排序也是基于比较的排序。时间复杂度为 3、桶排序、计数排序、基数排序不是基于比较的排序,其时间复杂度为 4、冒泡排序BS:一次冒泡会让至少一个元素移动它应该在的位置,重复n次之后就完成了n个数据的排序工作。     每次冒泡就是把从左至右的数据中第一个相邻关系发生异常的数据摆放到正确的位...
写文章

热门文章

  • Matlab计算器设计 14830
  • Python抓取excel中关键字 7394
  • 安装Tensorflow的简单方法 7099
  • 鸡蛋瑕疵检测 3983
  • 数据结构①:线性表的基本操作 2886

分类专栏

  • Python数据分析与展示 5篇
  • 深度学习炼丹术 3篇
  • 机器视觉与图像处理 2篇
  • Tensorflow 2篇
  • CCF-CSP 2篇
  • 数据结构 9篇
  • 机器学习 1篇
  • Python实用案例 2篇

最新评论

  • Matlab计算器设计

    Cloudcodes: 不想用积分下载的可以+V,在个人简介(有偿)

  • Matlab计算器设计

    xrl112: 这个出错怎么办啊? 出错 matlab . graphics . internal . figfile . FigFile / read >@( hObject , eventdata ) jisuangi ('pushbutton46_ Callback ', hObject , eventdata , guidata ( h 计算 UIControl Callback 时出错。 >> matlab . graphics . internal . figfile . FigFile . read 类 matlab . graphics . internal . figfile . FigFile 没有名为' read '的常里属性或静态方法。

  • Matlab计算器设计

    i-TERMINATOR: 请问楼主BUTTON里的内容怎么设置成正中心位置,刚开始学表情包

  • 安装Tensorflow的简单方法

    模电法王: 你好,请问你解决了吗,我也遇到和你一样的报错

大家在看

  • python股票接口,如何从零开始构建量化交易系统
  • 网页制作的排版方法
  • 前端开发人员的 20 个基本技能 327
  • JSX转换器 632
  • Python 爬虫的高级玩法 377

最新文章

  • 关于安装Tensorflow的一些操作及问题解决
  • CCFCSP 202112-1:序列查询
  • CCFCSP 202112-2:序列查询新解
2024年1篇
2023年2篇
2022年7篇
2021年10篇
2020年7篇
2019年1篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cloudcodes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

外国毕业证样本制作公司北京制作国外文凭毕业证定制银川代办国外文凭毕业证代办兰州代办海外学历证制作石家庄制作海外硕士毕业证补办代做海外学位证办理乌鲁木齐办理海外证件补办长沙制作国外成绩单补办西安定做海外学位证书代做兰州做国外留学学位证代做青岛办国外留学毕业证南京制作国外博士毕业证办理珠海代办国外学历文凭办理福州制作海外学历文凭广州做海外硕士毕业证代办珠海代办国外学位证补办南宁补办海外文凭毕业证办理北京办理海外学历证办理济南办理国外学历证定制哈尔滨办理海外博士毕业证代做合肥代办国外留学毕业证代做长春国外学位证书定制南宁办理国外本科毕业证郑州办理海外学历定做乌鲁木齐办国外博士毕业证上海补办海外学历文凭定做哈尔滨定做国外学位证定做西宁办海外留学学位证补办天津办国外学历文凭定制太原代办海外证书定做郑州国外留学毕业证定制淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

外国毕业证样本制作公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化