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

北京网站制作定制健身网站开发项目总结

北京网站制作定制,健身网站开发项目总结,国家工商企业注册查询网官网,做网站租服务器核心思想是按位排序(低位到高位)。适用于定长的整数或字符串,如例如:手机号、身份证号排序。按数据的每一位从低位到高位(或相反)依次排序,每次排序使用稳定的算法(如计数排序&#…

核心思想是按位排序(低位到高位)。适用于定长的整数或字符串,如例如:手机号、身份证号排序。按数据的每一位从低位到高位(或相反)依次排序,每次排序使用稳定的算法(如计数排序)。

#include <stdlib.h>
// 获取数组中最大值(用于确定位数)
int getMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;
}// 使用计数排序对指定位数进行排序(exp=1,10,100...)
void countSort(int arr[], int n, int exp) {int* output = (int*)malloc(n * sizeof(int));  // 输出数组int count[10] = {0};                          // 十进制计数数组// 统计当前位数字出现次数for (int i = 0; i < n; i++) {count[(arr[i] / exp) % 10]++;}// 计算累计位置(稳定排序关键)for (int i = 1; i < 10; i++) {count[i] += count[i - 1];}// 反向填充保证稳定性(相同数字保持原顺序)for (int i = n - 1; i >= 0; i--) {output[count[(arr[i] / exp) % 10] - 1] = arr[i];count[(arr[i] / exp) % 10]--;}// 将排序结果复制回原数组for (int i = 0; i < n; i++) {arr[i] = output[i];}free(output);
}// 基数排序主函数(LSD:最低位优先)
void radixSort(int arr[], int n) {int max = getMax(arr, n);// 按每一位进行计数排序for (int exp = 1; max / exp > 0; exp *= 10) {countSort(arr, n, exp);}
}
#include <stdio.h>
// 打印数组
void printArray(int arr[], int n) {for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");
}int main() {int arr[] = {170, 45, 75, 90, 802, 24, 2, 66}; // 测试数据int n = sizeof(arr) / sizeof(arr[0]);printf("排序前: ");printArray(arr, n);radixSort(arr, n);printf("排序后: ");printArray(arr, n);return 0;
}

优化建议:

1.基数选择优化,使用更大的基数(如256),减少迭代次数,提升缓存利用率

2.内存预分配,预分配输出数组空间,减少多次内存分配开销

3负数处理,分离符号位单独处理,支持负数排序

扩展优化示例(支持负数)

void radixSortWithNegative(int arr[], int n) {// 分离正负数int* positive = malloc(n * sizeof(int));int* negative = malloc(n * sizeof(int));int pos_count = 0, neg_count = 0;for (int i = 0; i < n; i++) {if (arr[i] >= 0) {positive[pos_count++] = arr[i];} else {negative[neg_count++] = -arr[i]; // 取绝对值处理}}// 分别排序正负数radixSort(positive, pos_count);radixSort(negative, neg_count);// 合并结果(负数逆序)int index = 0;for (int i = neg_count - 1; i >= 0; i--) {arr[index++] = -negative[i];}for (int i = 0; i < pos_count; i++) {arr[index++] = positive[i];}free(positive);free(negative);
}

http://www.yayakq.cn/news/925760/

相关文章:

  • 淄博市 网站建设报价注册域名不建设网站
  • 网站详细报价做网站应该问客户什么需求
  • 怎么进入官方网站查询建设工程规范在哪个网站下载
  • 用新华做网站名是否侵权wordpress 商用
  • 做名片模板网站服务器安全加固
  • 采购网站官网手机网站 html
  • 如何制作自己的网站链接教程四川网络推广公司哪家好
  • 公司做网站的申请如何注册公司支付宝账户
  • 个人备案网站可以做商城吗建设局网站作用
  • 网站长期外包四川建设网站信息查询中心
  • 怎么建设商业网站门户网站是网络表达吗
  • 百度商桥要怎么添加到网站作品展示网站 源码
  • 甜品网站建设策划书国内交互网站
  • 活动网站推广方案官网首页制作报价
  • 威海市网站建设免费域名申请哪个最好
  • 数码产品简约大气网站设计视频播放网站模板
  • 网站的技术分析国外 wordpress
  • 妙趣网 通辽网站建设手机网站如何做
  • 西安学校网站建设哪家专业东莞常平律师事务所
  • 潍坊网站建设哪家便宜不包括
  • 福建省建设质量安全协会网站自助下单网站咋做
  • 网站开发aichengkeji郑州网站制作开发
  • 吉林市做网站的科技公司做类似58同城的网站
  • 公司做网站需要多少钱wordpress中修改链接
  • 做动画合成的视频网站网页设计比赛策划案
  • 阳春做网站应用市场华为
  • 邢台做网站的价格究竟多少钱?北京平面设计公司排行榜
  • 广水做网站手机开发者模式怎么调成高性能
  • 自己做的网站怎么上传到浏览器学做网站需要什么基础
  • 南通市建设局网站马建明网站推广方法有几个