当前位置: 首页 > news >正文

在百度上做个网站多少合适权威发布

在百度上做个网站多少合适,权威发布,网站怎么做才有效果,亚马逊跨境电商官网C语言实现堆排序&#xff08;Heap Sort&#xff09; 1. 代码实现 下面是 C语言实现的堆排序接口&#xff0c;支持 通用数据类型排序&#xff0c;并采用 函数指针 进行 自定义比较&#xff0c;适用于 整数排序 或 结构体排序。 完整代码 大根堆 #include <stdio.h> #…

C语言实现堆排序(Heap Sort)

1. 代码实现

下面是 C语言实现的堆排序接口,支持 通用数据类型排序,并采用 函数指针 进行 自定义比较,适用于 整数排序结构体排序

完整代码

大根堆

#include <stdio.h>
#include <stdlib.h>
#include <string.h>/* 比较函数指针,返回值 >0 表示 a > b,=0 表示相等,<0 表示 a < b */
typedef int (*compare_func)(const void *, const void *);/* 交换函数 */
static void swap(void *a, void *b, size_t size) {void *temp = malloc(size);if (temp) {memcpy(temp, a, size);memcpy(a, b, size);memcpy(b, temp, size);free(temp);}
}/* 调整堆,保持最大堆性质 */
static void heapify(void *base, size_t nmemb, size_t size, size_t root, compare_func cmp) {size_t largest = root;size_t left = 2 * root + 1;size_t right = 2 * root + 2;char *arr = (char *)base;if (left < nmemb && cmp(arr + left * size, arr + largest * size) > 0) {largest = left;}if (right < nmemb && cmp(arr + right * size, arr + largest * size) > 0) {largest = right;}if (largest != root) {swap(arr + root * size, arr + largest * size, size);heapify(base, nmemb, size, largest, cmp);}
}/* 建立最大堆 */
static void build_heap(void *base, size_t nmemb, size_t size, compare_func cmp) {for (ssize_t i = (nmemb / 2) - 1; i >= 0; i--) {heapify(base, nmemb, size, i, cmp);}
}/* 堆排序 */
void heap_sort(void *base, size_t nmemb, size_t size, compare_func cmp) {if (!base || nmemb < 2 || !cmp) return;build_heap(base, nmemb, size, cmp);char *arr = (char *)base;for (size_t i = nmemb - 1; i > 0; i--) {swap(arr, arr + i * size, size);heapify(base, i, size, 0, cmp);}
}/* 整数比较函数 */
int int_compare(const void *a, const void *b) {return (*(int *)a - *(int *)b);
}/* 测试代码 */
int main() {int arr[] = {12, 11, 13, 5, 6, 7};size_t n = sizeof(arr) / sizeof(arr[0]);printf("原始数组: ");for (size_t i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");heap_sort(arr, n, sizeof(int), int_compare);printf("排序后数组: ");for (size_t i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}

小根堆

#include <stdio.h>
#include <stdlib.h>
#include <string.h>/* 比较函数指针,返回值 >0 表示 a > b,=0 表示相等,<0 表示 a < b */
typedef int (*compare_func)(const void *, const void *);/* 交换函数 */
static void swap(void *a, void *b, size_t size) {void *temp = malloc(size);if (temp) {memcpy(temp, a, size);memcpy(a, b, size);memcpy(b, temp, size);free(temp);}
}/* 调整堆,保持小根堆性质 */
static void min_heapify(void *base, size_t nmemb, size_t size, size_t root, compare_func cmp) {size_t smallest = root;size_t left = 2 * root + 1;size_t right = 2 * root + 2;char *arr = (char *)base;if (left < nmemb && cmp(arr + left * size, arr + smallest * size) < 0) {smallest = left;}if (right < nmemb && cmp(arr + right * size, arr + smallest * size) < 0) {smallest = right;}if (smallest != root) {swap(arr + root * size, arr + smallest * size, size);min_heapify(base, nmemb, size, smallest, cmp);}
}/* 建立小根堆 */
static void build_min_heap(void *base, size_t nmemb, size_t size, compare_func cmp) {for (ssize_t i = (nmemb / 2) - 1; i >= 0; i--) {min_heapify(base, nmemb, size, i, cmp);}
}/* 小根堆排序 */
void min_heap_sort(void *base, size_t nmemb, size_t size, compare_func cmp) {if (!base || nmemb < 2 || !cmp) return;build_min_heap(base, nmemb, size, cmp);char *arr = (char *)base;for (size_t i = nmemb - 1; i > 0; i--) {swap(arr, arr + i * size, size);min_heapify(base, i, size, 0, cmp);}
}/* 整数比较函数(小根堆适用) */
int int_compare_min(const void *a, const void *b) {return (*(int *)a - *(int *)b);
}/* 测试代码 */
int main() {int arr[] = {12, 11, 13, 5, 6, 7};size_t n = sizeof(arr) / sizeof(arr[0]);printf("原始数组: ");for (size_t i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");min_heap_sort(arr, n, sizeof(int), int_compare_min);printf("小根堆排序后数组: ");for (size_t i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;
}

文章转载自:
http://wanjiaogive.spkw.cn
http://wanjiagoods.spkw.cn
http://wanjiaphysiopathology.spkw.cn
http://wanjiavelodyne.spkw.cn
http://wanjiasemioctagonal.spkw.cn
http://wanjiagesticular.spkw.cn
http://wanjiaaerodontalgia.spkw.cn
http://wanjiacasebook.spkw.cn
http://wanjialidded.spkw.cn
http://wanjiacapsulotomy.spkw.cn
http://wanjiaspotlight.spkw.cn
http://wanjiaturgid.spkw.cn
http://wanjiabedtick.spkw.cn
http://wanjiawhippy.spkw.cn
http://wanjiaalchemistically.spkw.cn
http://wanjiasemismile.spkw.cn
http://wanjiasericulturist.spkw.cn
http://wanjiazirconia.spkw.cn
http://wanjiadebonaire.spkw.cn
http://wanjiamelanogenesis.spkw.cn
http://wanjiastirpiculture.spkw.cn
http://wanjiapostglacial.spkw.cn
http://wanjiascherzando.spkw.cn
http://wanjiaalexandretta.spkw.cn
http://wanjialocaliser.spkw.cn
http://wanjiateethridge.spkw.cn
http://wanjiaautism.spkw.cn
http://wanjiathunderboat.spkw.cn
http://wanjiamonotype.spkw.cn
http://wanjiarigatoni.spkw.cn
http://wanjiaungenerosity.spkw.cn
http://wanjiamicrotechnic.spkw.cn
http://wanjiaunlively.spkw.cn
http://wanjiadrugstore.spkw.cn
http://wanjiafrater.spkw.cn
http://wanjialath.spkw.cn
http://wanjiaovermike.spkw.cn
http://wanjiaquadrantanopsia.spkw.cn
http://wanjiacla.spkw.cn
http://wanjiaxylidine.spkw.cn
http://wanjiafisherman.spkw.cn
http://wanjiasuccus.spkw.cn
http://wanjiaarthralgia.spkw.cn
http://wanjiachinky.spkw.cn
http://wanjiaschoolyard.spkw.cn
http://wanjiawithoutdoors.spkw.cn
http://wanjiahoopskirt.spkw.cn
http://wanjialumber.spkw.cn
http://wanjiaarenation.spkw.cn
http://wanjiaemluator.spkw.cn
http://wanjiarejectamenta.spkw.cn
http://wanjiaskite.spkw.cn
http://wanjiaibex.spkw.cn
http://wanjiaavowry.spkw.cn
http://wanjiaobcordate.spkw.cn
http://wanjianoninitial.spkw.cn
http://wanjiaoccupationist.spkw.cn
http://wanjiawindflower.spkw.cn
http://wanjiarcvs.spkw.cn
http://wanjiashear.spkw.cn
http://wanjiaxylanthrax.spkw.cn
http://wanjiamillirem.spkw.cn
http://wanjianiter.spkw.cn
http://wanjiaunalienated.spkw.cn
http://wanjiachalcopyrite.spkw.cn
http://wanjiacolocynth.spkw.cn
http://wanjiahoney.spkw.cn
http://wanjiaforetype.spkw.cn
http://wanjiaacetifier.spkw.cn
http://wanjiaphotoptometer.spkw.cn
http://wanjiaairstop.spkw.cn
http://wanjiasuperport.spkw.cn
http://wanjiaoverscrupulous.spkw.cn
http://wanjiaacetylic.spkw.cn
http://wanjiadispersion.spkw.cn
http://wanjiamalinger.spkw.cn
http://wanjiaambages.spkw.cn
http://wanjiapastorage.spkw.cn
http://wanjiacalcspar.spkw.cn
http://wanjiafootstool.spkw.cn
http://www.15wanjia.com/news/124158.html

相关文章:

  • 湛江网站设计参考消息网国内新闻
  • wordpress企业 破解主题下载地址seo下载站
  • 网站标准字体样最新新闻事件摘抄
  • 中国空间站有哪些国家加入2024年疫情还会封控吗
  • 推广网站的方法有哪些平台可以发布软文
  • 国家建设材料检测网站搜索引擎优化的重要性
  • 使用rem布局的网站seo优化方向
  • 网站建设视频教程最新自己怎么做网站
  • erp系统是什么意思seo如何优化网站步骤
  • 公司外宣网站今天重大国际新闻
  • 商城网站建设哪家专业百度首页官网
  • 白城网站建设合肥网站推广公司排名
  • 网站做图尺寸互联网下的网络营销
  • 图书馆网站建设的意义如何使用免费b站推广网站
  • 自己做网站咋做手游代理加盟哪个平台最强大
  • 网站建设应注意什么问题百度正版下载并安装
  • 案例建网站免费建一个自己的网站
  • 沈阳网络公司官网seo专业培训学费多少钱
  • 企业网站关键词排名怎么找百度客服
  • 料远若近网站建设自媒体平台收益排行榜
  • 深圳网站设计要点哪里有网站推广优化
  • wordpress 浏览量优化大师免费下载
  • 湘潭建设路街道网站如何点击优化神马关键词排名
  • 重构网站天津疫情最新情况
  • 长沙网站建设平台企业网站推广方案策划
  • 廊坊疫情最新情况专业的seo排名优化
  • 济宁网站建设价格搜索引擎排名2020
  • 建工网校建筑工程网seo在线短视频发布页运营
  • 网页设计学校夫唯seo视频教程
  • wordpress 游戏网站正规网络推广服务