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

每个网站都有服务器吗淘宝上网站建设是什么

每个网站都有服务器吗,淘宝上网站建设是什么,安徽飞亚建设网站,新余网站开发公司一、堆排序算法 基本思想 堆排序是一种比较有效的排序方法#xff0c;其基本思想是#xff1a; 构建最大堆#xff1a;首先将待排序的数组构建成一个最大堆#xff0c;即对于每个非叶子节点#xff0c;它的值都大于或等于其子节点的值。排序#xff1a;然后将堆顶元素…一、堆排序算法 基本思想 堆排序是一种比较有效的排序方法其基本思想是 构建最大堆首先将待排序的数组构建成一个最大堆即对于每个非叶子节点它的值都大于或等于其子节点的值。排序然后将堆顶元素最大值与堆的最后一个元素交换位置将其移出堆并调整剩余元素以保持最大堆的性质。 步骤 构建最大堆从最后一个非叶子节点开始逐个调整子树使之满足最大堆的条件。排序重复以下操作直到堆为空 将堆顶元素最大值与堆的最后一个元素交换位置。重新调整剩余元素以保持最大堆的性质。 示例 假设我们有一个数组 [5, 2, 4, 6, 1, 3] 构建最大堆 [5, 2, 4, 6, 1, 3] - [6, 5, 4, 2, 1, 3]排序 将最大的元素 6 移动到数组的末尾然后重新调整剩余元素以保持最大堆的性质。重复此过程直到所有元素都被排序。 性能分析 时间复杂度O(n log n)其中 n 是数组中的元素数量。空间复杂度O(1)原地排序。 二、代码 #include stdlib.h #include stdio.h #include time.h// 函数声明 int* create_and_generate_random_array(int size); void print_array(int *array, int size); void heapify(int *array, int n, int i); void heap_sort(int *array, int size); int generate_random_size();int main() {int size generate_random_size(); // 随机生成数组大小int *array create_and_generate_random_array(size);if (array NULL) {// 如果内存分配失败printf(Memory allocation failed\n);free(array);return 1;}// 打印原始数组如果需要可以取消注释// printf(Original array:\n);// print_array(array, size);// 获取开始时间clock_t start_time clock();// 对数组进行堆排序heap_sort(array, size);// 获取结束时间clock_t end_time clock();// 计算时间差并转换为毫秒double execution_time ((double)(end_time - start_time) / CLOCKS_PER_SEC) * 1000;// 打印排序后的数组如果需要可以取消注释// printf(Sorted array:\n);// print_array(array, size);printf(array_size %d\n, size);// 打印执行时间printf(Execution time: %.2f ms\n, execution_time);// 释放分配的内存free(array);return 0; }// 生成随机数组大小 int generate_random_size() {srand(time(NULL));return rand() % 9000 1000; // 生成1000到9999之间的随机数 }// 创建并生成随机数组 int* create_and_generate_random_array(int size) {int *array (int *)malloc(sizeof(int) * size);if (array NULL) {// 如果内存分配失败return NULL;}// 使用当前时间作为随机数种子srand(time(NULL));for (int i 0; i size; i) {array[i] rand() % 1000; // 生成0到999之间的随机数}return array; }// 打印数组 void print_array(int *array, int size) {for (int i 0; i size; i) {printf(%d , array[i]);}printf(\n); }// 构建最大堆 void heapify(int *array, int n, int i) {int largest i; // 初始化最大值索引int left 2 * i 1; // 左子节点int right 2 * i 2; // 右子节点// 如果左子节点大于根if (left n array[left] array[largest])largest left;// 如果右子节点大于当前最大值if (right n array[right] array[largest])largest right;// 如果最大值不是根if (largest ! i) {int swap array[i];array[i] array[largest];array[largest] swap;// 递归地堆化受影响的子树heapify(array, n, largest);} }// 堆排序 void heap_sort(int *array, int size) {// 构建最大堆for (int i size / 2 - 1; i 0; i--)heapify(array, size, i);// 一个接一个从堆顶取出元素for (int i size - 1; i 0; i--) {// 将当前根最大值移动到数组末尾int temp array[0];array[0] array[i];array[i] temp;// 调整剩余堆使其成为最大堆heapify(array, i, 0);} }
http://www.hkea.cn/news/14271463/

相关文章:

  • ui毕业设计代做网站北京管庄网站建设公司
  • html网页设计网站网站关键词用什么做
  • 用python做音乐网站免费客源软件
  • 沈阳网站建设莫道网络网站代理公司
  • 网站建设使用什么软件有哪些南通市规划建设局网站
  • 三网合一网站远吗百度快照怎么看
  • 网页设计网站总结报告怎么写简易手机站
  • wordpress页面权限插件如何提高网站seo排名
  • 江门网站建设价格做排名出租网站
  • 佛山网站建设哪家专业wordpress支持手机端嘛
  • 做网站优化就是发文章吗婚纱网站论文
  • 幸运28网站代理怎么做锦溪网站建设
  • 怎么做网站推广云浮wordpress 电子杂志
  • 网站模块设计怎么做制定网络营销方案的步骤
  • apache发布多个网站天津百度百科
  • 展览设计网站推荐怎么免费建公司网站
  • 手机分销网站合肥制作网站哪家好
  • 做网站域名服务器论坛网站有哪些
  • 搜狐网站网络营销怎么做百度竞价开户3000
  • 自己做的网站跳转到购彩大厅线上引流线下推广方案
  • 双峰做网站深圳营销网站建设报价
  • 宝塔做的网站能不能访问公司网络组建方案怎么写
  • 宜兴建设公司网站网页游戏设计与制作专业
  • 网站建设合同属于技术服务么做国外网站用什么颜色
  • 免费综合网站注册申请住房和城乡建设部网站城市稽查
  • 设计素材网站能挣钱吗微信网站开发哪家好
  • 成都市做网站的公司怎样 管理网站
  • 手机免费建设网站制作博业建站网
  • 如何加强门户网站建设网站建设有哪些关键细节
  • 郑州网站推广哪家专业产品营销软文