用C语言实现优先级排序和MATLABsort函数的比较
来源:互联网 发布:php 字符串转换成html 编辑:程序博客网 时间:2024/06/10 20:03
为了实现对两个数组进行优先级排序,用c语言有两种实现方法,
一是需要对两个数组进行排序,然后对排序后的坐标再排序,(求最小值是我自己需要)
二是直接寻找数组排序后的元素坐标,调用qsort函数进行排序,排序后的数组会存放在原数组中,那么就有两种寻找坐标,一是寻找原数组的坐标(结果一),二是寻找排序后数组的坐标,根据需要可以自己选(结果二)。
MATLAB相对要简单很多,只需要几句话就能实现,不过对于底层的原理不太好理解。
MATLAB程序:
A=[1.0,2.0,5.0,10.0,0.0,6.0,9.0];%定义两个数组
C=[6.0,2.0,5.0,10.0,7.0,8.0,9.0];
[q,r]=sort(A); %对A进行升序排列
[a,t]=sort(r); %对r进行升序排列
[l,s]=sort(C); %对C进行升序排列
[c,z]=sort(s); %对s进行升序排列
[d,m]=min(t+z); %求坐标和的最小值
结果与VS结果一一直:
VS程序代码
#include<stdio.h>
#include<stdlib.h>//#include<math.h>
//#define N 7
int comp(const void*a, const void*b)//用来做比较的函数。
{
return *(int*)a - *(int*)b;//升序排列
// return *(int*)b - *(int*)a;//降序排列
}
int main()
{
int q,n,j,t;
int h;
float r[7], s[7], p[7];
int d[7], z[7] ;
void minum(float *a);
float b[7] = {1.0,2.0,5.0,10.0,0.0,6.0,9.0};
float c[7] = { 6.0,2.0,5.0,10.0,7.0,8.0,9.0 };
for (j = 0; j < 7; j++)
r[j] = b[j];
for (j = 0; j < 7; j++)
s[j] = c[j];
qsort(b, 7, sizeof(b[0]), comp);//调用qsort排序,
qsort(c, 7, sizeof(c[0]), comp);//调用qsort排序,
for (q = 0; q<7; q++)//遍历找出数组的坐标位置
for (j = 0; j<7; j++)
{
if (r[q] == b[j])
z[q] = j + 1;
if (s[q] == c[j])
d[q] = j + 1;
p[j] = z[j] + d[j];
}
for (h = 0; h < 7; h++)
{
printf("%f ", p[h]);
}
printf("\n");
minum(p);
}
void minum(float *a)
{
int i;
int m = 1;
float min;
min = a[0];
for (i = 1; i < 7; i++)
{
if (min > a[i])
{
min = a[i];
m = i + 1;
}
else
continue;
}
printf("%f ", min);
printf("\n");
printf("%d ", m);
printf("\n");
switch (m)
{
case 1: printf("%d ", 0);
break;
case 2: printf("%d ", 1);
break;
case 3: printf("%d ", 2);
break;
case 4: printf("%d ", 3);
break;
case 5: printf("%d ", 4);
break;
case 6: printf("%d ", 5);
break;
case 7: printf("%d ", 6);
break;
default: break;
}
结果一:
}
结果二
阅读全文
0 0
- 用C语言实现优先级排序和MATLABsort函数的比较
- C语言运算符的优先级排序
- memcopy()函数c语言实现和汇编实现比较
- C语言实现的优先级队列
- C语言中 ++ 和 * 的优先级
- C语言中 ++ 和 * 的优先级
- 常用哈希函数的比较及其C语言实现
- c语言的优先级
- C语言的优先级
- C语言函数--strcpy和memcpy的比较
- C语言中运算符的优先级排序表
- 读《算法导论》我来C语言实现(3)——堆排序和优先级队列
- 字符串拷贝函数和字符串比较函数C语言实现方法
- stl的排序 和 用算法实现的排序比较
- C语言提高-第26/27讲: 实现线性表基本操作的函数/编写查找和排序函数
- C语言提供搜索(bsearch)和排序(qsort)的函数
- [数据结构]用插入排序和选择排序的思想实现优先级队列
- c语言一些比较特殊的函数
- test
- 关于ko的运行
- python爬虫初学(二)——使用代理
- git 常用指令总结——基于廖雪峰大神的Git教程
- Android Studio 3.0及中文输入法不显示的问题解决
- 用C语言实现优先级排序和MATLABsort函数的比较
- java 网络编程 基础socket
- fork: retry:资源暂时不可用
- Java 反射
- Http服务器--使用Http服务做转发
- 如何理解Python装饰器?
- git中统计代码行数
- shell 脚本中双引号、单引号、反引号的区别
- openshift/origin工作记录(4)——Pod时区同步