获取一个整型数组前三个最大的值
来源:互联网 发布:仿今日头条 php 编辑:程序博客网 时间:2024/05/17 09:17
没有用堆排序,遍历一次就够了,顺便练习一下二维数组
#include <stdio.h>int (*getmin(int (*input)[3],int (*out)[1]))[1]{if (input == NULL){return NULL;}if (input[0][0] < input[0][1]){if (input[0][0] < input[0][2]){out[0][0] = 0;out[1][0] = 0;return out;}else{out[0][0] = 0;out[1][0] = 2;return out;}}if (input[0][1] < input[0][2]){out[0][0] = 0;out[1][0] = 1;return out;}else{out[0][0] = 0;out[1][0] = 2;return out;}}void get3maxnum(int *num,size_t size,int (*out)[3]){size_t i;int res[2][1] = {0};int (*pres)[1] = NULL;if (size < 3 || num == NULL || out == NULL){return ;}//初始化out[0][0] = *(num + 0);out[1][0] = 0;out[0][1] = *(num + 1);out[1][1] = 1;out[0][2] = *(num + 2);out[1][2] = 2;for (i = 3; i < size; ++i){pres = getmin(out,res);//返回一个二维指针if (*(num + i) > out[pres[0][0]][pres[1][0]]){out[pres[0][0]][pres[1][0]] = *(num + i);out[1][pres[1][0]] = i;}}}int main(void){int a[] = {454,45,54,48,0,1,888,9};int res[2][3] = {0};int i = 0;get3maxnum(a,sizeof(a)/sizeof(a[0]),res);printf("前三个最大值:\t");for (i = 0; i < 3; ++i){printf("%4d ",res[0][i]);}printf("\n索引:\t\t");for (i = 0; i < 3; ++i){printf("%4d ",res[1][i]);}putchar('\n');return 0;}
0 0
- 获取一个整型数组前三个最大的值
- php获取数组最后一个数组值的三个方法
- 获取一个数组最大的k个数
- 求一个整型数组的最大和的子数列,要求时间复杂度为线性的
- 输入一个整型数组(10个) 把最大的与第一个交换输出
- 求一个整型数组中的最大连续子序列和
- 将整型数组转成一个完整的整型数字
- 计算一个整型数组的元素之和
- 求一个整型数组的最小值
- 优雅的轮询获取一个数组的当前值以及下一个值
- 创建长度为16的整型数组,初始化前15个元素,将一个数插入到a[0]
- 获取一个整型的每八位
- 从三个排好序的整数数组中分别选一个元素,使得这三个元素的最大差最小
- 递归求整型数组前N个数的和
- 求整型数组最大最小值
- 整型数组拼接最大数
- 获取数组中最大的值
- 获取数组中最大元素的值
- 发动短信内容截取方法
- Repo脚本分析
- 挑战变成设计->2.6 数学问题的解题窍门->线段上格点的个数
- PreferenceScreen的学习
- chapter 4第一部分
- 获取一个整型数组前三个最大的值
- Algorithm学习笔记 --- DNAsorting
- hadoop-2.2.0伪分布式与(全分布集群安装于配置续,很详细的哦~)
- 面向对象——多态
- IOS开发 iphone手机屏幕相关知识
- shell算数运算
- 并发update/update引起的buffer busy wait
- window上使用cygwin编译c及cygwin安装
- VC 查找目录中是否已经存在该文件