三九宝宝网宝宝教育教学论文

帮我随便写下用C语言实现并归排序的代码

02月12日 编辑 39baobao.com

[四年级语文上册口语交际学会赞美老师要写下来怎么写???]教学目的: 1、通过师生互动、生生互动,使学生知道怎样赞美别人,在情境中培养学生赞美别人的能力。 2、通过联系学生学习生活实际,使学生懂得赞美别人除一定要真诚外,也可以采取不...+阅读

int a[100];

void Merge(int head,int mid,int tail)

{

int temp[tail-head+1];

int top=-1;

int i=head,j=mid+1;

while (i<=mid && j<=tail)

{

if (a[i]>a[j]) temp[++top]=a[j++];

else temp[++top]=a[i++];

}

for (;i<=mid ;i++ ) temp[++top]=a[i];

for (;j<=tail;j++ ) temp[++top]=a[j];

for (;top>=0 ;top-- ) a[top+head]=temp[top];

}

void Mergesort(nt head,int tail)

{

if (tail-head<1) return;

int mid=(head+tail)>>1;

if (mid >head) Mergesort(head,mid);

if (mid+1<tail) Mergesort(mid+1,tail);

Merge(head,mid,tail);

}

直接敲的代码,可能会有点小错误。

这应该是最简洁的版本的,我当初参加竞赛的时候就用的这个算法

以下为关联文档:

用C语言如何将一个一维数组中的元素随机排序#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int i,j,n,k,t,a[100]; srand((unsigned) time(NULL)); scanf("%d",&n); k=n; //k:未定顺序的元素个...

C语言二路归并排序求详解啊!看不懂递归啊!到底是怎么个过程mid的初始值为0,进入if循环之后,会首先判断大小,加入满足条件first<last时,mid的值就变成了 mid = (first+last)/2;然后会进入函数的调用,调用 merge_sort(arr, first, mid);函数,递...

随机生成10个待排序数据用C语言写出二路归并排序算法#include<stdio.h> #include<stdlib.h> #include<time.h> int b[ 10 ]; void Merge( int c[], int d[], int l, int m, int r ) { int i = l, j = m + 1, k = l; while( ( i...

C语言中有多少种常用的排序; using namespace std; int main() { int a[10]; cout<&lt;"输入10个数字:"<<endl; for (int i=0;i<10;i++) { cin>>a[i]; } for(int m=0;m<10;m++) for(int n=0;n<10;n++) { i...

使用C语言编程实现排序算法#include<stdio.h> main() { struct { char mz[5]; int sd; char sbing[5]; int xs; }a[100],k; int i,b,j; printf("请输入球员数量\n"); scanf("%d",&b); for(i=0;i<b;i++) {pri...

急!C语言程序数据结构排序算法的问题#include"stdio.h" #include"stdlib.h" #include "string.h" #define Max 100 //假设文件长度 typedef struct{ //定义记录类型 int key; //关键字项 }RecType; typedef RecType Se...

用c语言两个排序算法随便来俩就行 3Q冒泡排序 #include<stdio.h&gt; //链接标准头文件 #define N 5 //定义常量N并赋值为5 void main() //主函数入口 { //表示主函数开始 int i,j; //定义整形变量i和j int grade[N...

C语言插入排序算法int main () { int i; DataType a[MaxSize]; SqList L; srand((unsigned)time(NULL)); for (i=0;i{ int number = rand()%MaxSize + 1; //printf ("%d ",number); a[i].key =...

高分送!如何用C语言实现归并排序算法!#include <iostream> using namespace std; void merge(int array[],int left,int right) { int temparray[right]; for(int j=left;j<=right;j++) { temparray[j]=array[j]...

推荐阅读
图文推荐