单片机实验“将20个数据中的偶数按从大到小的顺序排列单独存放”这个语言怎么编写啊?

前几年学过但是现在都忘了。最好带标注

#include <stdio.h>

int partions(int l[],int low,int high)
{
int prvotkey=l[low];
l[0]=l[low];
while (low<high)
{
while (low<high&&l[high]>=prvotkey)
--high;
l[low]=l[high];
while (low<high&&l[low]<=prvotkey)
++low;
l[high]=l[low];
}

l[low]=l[0];
return low;
}

void qsort(int l[],int low,int high)
{
int prvotloc;
if(low<high)
{
prvotloc=partions(l,low,high); //将第一次排序的结果作为枢轴
qsort(l,low,prvotloc-1); //递归调用排序 由low 到prvotloc-1
qsort(l,prvotloc+1,high); //递归调用排序 由 prvotloc+1到 high

}
}

void quicksort(int l[],int n)
{
qsort(l,1,n); //第一个作为枢轴 ,从第一个排到第n个
}

void main()
{
int a[11]={0,2,32,43,23,45,36,57,14,27,39};

for (int b=1;b<11;b++)
printf("%3d",a[b]);

printf("\n");
quicksort(a,11);

for(int c=1;c<11;c++)
printf("%3d",a[c]);

}

pc上的快速排序算法追问

你这个是c语言和我们单片机汇编语言不一样。是类似于这样的
ORG 0000H
LCALL SORT

SORT: ;
MOV R6, #16 ;
DEC R6 ;

追答

汇编的啊,http://wenku.baidu.com/link?url=nFYRzQkrWF-kKdz7Tzowp6uSIt29AWCOfrnTCpCrGBaxGxxjiT4XcYaJbjEE_fC_8p4y5iQ2YBDqQGHPtRtFzAJn0vrJKMtey4ZcZng0IMW
参考下吧,汇编的就少不少了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-15
可以给你写一份追问

是加qq吗?

追答

是的

相似回答