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

做网站当生日礼物网店推广的作用是什么

做网站当生日礼物,网店推广的作用是什么,附近哪有学编程的地方,开锁换锁公司网站模板目录 1. 快速排序 1.1 快速排序理论分析 1.2 快速排序的模拟实现 2. qsort的模拟实现 2.1 qsort的理论分析 2.2 qsort的模拟实现 qsort函数是基于快速排序思想设计的可以针对任意数据类型的c语言函数。要对qsort进行模拟实现,首先就要理解快速排序。 1. 快…

目录

1. 快速排序

1.1 快速排序理论分析 

1.2 快速排序的模拟实现 

2. qsort的模拟实现 

2.1 qsort的理论分析

2.2 qsort的模拟实现


qsort函数是基于快速排序思想设计的可以针对任意数据类型的c语言函数。要对qsort进行模拟实现,首先就要理解快速排序。

1. 快速排序

1.1 快速排序理论分析 

上一期博客选择排序,冒泡排序,插入排序,快速排序及其优化-CSDN博客我们大概讲解了快速排序的思路,现在我们来详细讲解以下快速排序。

 让我们来逐帧分析快速排序的思想。

1. 第一步便是找到基准数,开始分区:基准数可以选择第一个,最后一个,也可以是随机的(为了便于理解,以下的图都默认选的是第一个,当然代码是随机的,重要的是先把交换三个数的本质理解到)

2.  分而治之,调整后基准数的左右两边,再进行相同的操作,直到不能再排序(数组长度为1时,就不能再排序了)

 

1.2 快速排序的模拟实现 

以上便是对快速排序底层逻辑的分析, 接下来以c语言为例,讲解模拟实现快速排序。

1. 选一个基准数,这里选的是首元素

2. 开始分区,遍历整个数组,开始交换位置(三个数),小的在前,大的在后

3. 开始递归,左右两边都要开始递归,由于需要知道边界,所以分区时,应该再返回基准数的地址。同时为了避免递归递而不归,应设置最小的长度


/*返回值:基准数最后的下标参数:需要分区的部分(从头到尾开始排)
*/
int partition(int arr[], int start, int end)
{int len = end - start;int* ppivot = arr + start;int* s = ppivot + 1;while (len--){if (*ppivot >= *s){int temp = *s;*s = *(ppivot + 1);*(ppivot + 1) = *ppivot;*ppivot = temp;ppivot++;}s++;}return ppivot - arr;
}/*返回值:arr首元素的地址参数:需要排序的部分(从头到尾)
*/int* quick_sort(int arr[], int start, int end)
{assert(arr);int* p = arr;if (end > start){int pivot = partition(arr, start, end);quick_sort(arr, start, pivot - 1);quick_sort(arr, pivot + 1, end);}return p;
}

 当然,对于分区的排序可以进行优化,使用双指针也可以。双指针就是首尾往中间交换的模式,效率自然更高。这里不过多展开去讲。

2. qsort的模拟实现 

2.1 qsort的理论分析

C 库函数 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 对数组进行排序。它可以接收任意类型进行排序,其实跟快速排序接收int类型差不多,只是这里多了一个强制类型转换。

2.2 qsort的模拟实现

qsort的模拟实现,基本就是在quick_sort上做改造,将原来只可以进行int数据类型的改成任意数据类型。

1. 原来是数值之间的比较,现在要改成有专门的比较数据大小的函数(字符:strcmp)

2. 交换位置,原来int直接就可以交换数据,现在强制类型转换成char*后,单位转换的变少了,则需要循环4次,才够int 四个字节

3. 指针加1, 原来有确定类型,现在是void* 原来加1,现在就应该加size

int cmp_int(const void* a, const void* b)
{return *(int*)a - *(int*)b;
}/*返回值:基准数最后的下标参数:需要分区的部分(从头到尾开始排)
*/
int partition(void* arr, int start, int end, size_t size)
{int len = end - start;char* ppivot = ((char*)arr + start * size);char* s = ppivot + size;while (len--){if ((*cmp_int)(ppivot, s) > 0){for (int i = 0; i < size; i++){int temp = *(s+i);*(s+i) = *(ppivot + size + i);*(ppivot + size + i) = *(ppivot+i);*(ppivot+i) = temp;}ppivot += size;}s += size;}return (int)((ppivot - (char*)arr) / size);
}/*返回值:arr首元素的地址参数:需要排序的部分(从头到尾)
*/void* quick_sort(void* arr, int start, int end,size_t size)
{assert(arr);if (end > start){int pivot = partition(arr, start, end,size);quick_sort(arr, start, pivot - 1,size);quick_sort(arr, pivot + 1, end,size);}return arr;
}void* my_qsort(void* arr, size_t len, size_t size, int (*cmp_int)(const void* a, const void* b))
{assert(arr);int start = 0;int end = (int)len - 1;quick_sort(arr, start, end, size);return arr;
}

感谢各位大佬的支持与指正!!!


文章转载自:
http://dinncoroderick.bpmz.cn
http://dinncosucculence.bpmz.cn
http://dinncomodom.bpmz.cn
http://dinncogerundival.bpmz.cn
http://dinncosala.bpmz.cn
http://dinncoprimavera.bpmz.cn
http://dinncovocalist.bpmz.cn
http://dinncosochi.bpmz.cn
http://dinncothrippence.bpmz.cn
http://dinncocab.bpmz.cn
http://dinncoserial.bpmz.cn
http://dinncodelocalise.bpmz.cn
http://dinncofollowing.bpmz.cn
http://dinncovacuometer.bpmz.cn
http://dinncoherein.bpmz.cn
http://dinncounseen.bpmz.cn
http://dinncoconglomeritic.bpmz.cn
http://dinncodropsical.bpmz.cn
http://dinncoreaffirmation.bpmz.cn
http://dinncolockout.bpmz.cn
http://dinnconefarious.bpmz.cn
http://dinncocapeskin.bpmz.cn
http://dinncoswiple.bpmz.cn
http://dinncospirochetic.bpmz.cn
http://dinncohammerfest.bpmz.cn
http://dinncocliffside.bpmz.cn
http://dinncoethnomusicological.bpmz.cn
http://dinncoinfinity.bpmz.cn
http://dinncoclanism.bpmz.cn
http://dinncofledgeling.bpmz.cn
http://dinncounavowed.bpmz.cn
http://dinncohyperbolize.bpmz.cn
http://dinncorheophobic.bpmz.cn
http://dinncocoact.bpmz.cn
http://dinncofarmhouse.bpmz.cn
http://dinncowoolmark.bpmz.cn
http://dinncoblay.bpmz.cn
http://dinncocounterjumper.bpmz.cn
http://dinncodilatometer.bpmz.cn
http://dinncomegatherium.bpmz.cn
http://dinncocacodyl.bpmz.cn
http://dinncogunport.bpmz.cn
http://dinncofluty.bpmz.cn
http://dinncogrocer.bpmz.cn
http://dinncokeester.bpmz.cn
http://dinnconitrosylsulfuric.bpmz.cn
http://dinncopetroglyphy.bpmz.cn
http://dinncobackslash.bpmz.cn
http://dinncosaccharinated.bpmz.cn
http://dinncoimbody.bpmz.cn
http://dinncogalgenhumor.bpmz.cn
http://dinncofrancophile.bpmz.cn
http://dinncoesterifiable.bpmz.cn
http://dinncoapplicable.bpmz.cn
http://dinncohooknose.bpmz.cn
http://dinncocauline.bpmz.cn
http://dinncotinsmith.bpmz.cn
http://dinncokindergarten.bpmz.cn
http://dinncocryochemical.bpmz.cn
http://dinncoundercurrent.bpmz.cn
http://dinncopairage.bpmz.cn
http://dinncomezuza.bpmz.cn
http://dinncoinvasive.bpmz.cn
http://dinncodiffusivity.bpmz.cn
http://dinncoapostolate.bpmz.cn
http://dinncospitzbergen.bpmz.cn
http://dinnconupe.bpmz.cn
http://dinncoinvade.bpmz.cn
http://dinncounshelled.bpmz.cn
http://dinncosmiley.bpmz.cn
http://dinncorespirator.bpmz.cn
http://dinncochoriambus.bpmz.cn
http://dinncoremigial.bpmz.cn
http://dinncohalobiont.bpmz.cn
http://dinncohydrozoan.bpmz.cn
http://dinncosemicylinder.bpmz.cn
http://dinncoundershirt.bpmz.cn
http://dinncocytochemical.bpmz.cn
http://dinncodiluvial.bpmz.cn
http://dinncosymphonette.bpmz.cn
http://dinncoairfight.bpmz.cn
http://dinncocaprate.bpmz.cn
http://dinncoadenine.bpmz.cn
http://dinncolimation.bpmz.cn
http://dinncoarrivederci.bpmz.cn
http://dinncopreequalization.bpmz.cn
http://dinncokneehole.bpmz.cn
http://dinncocumulus.bpmz.cn
http://dinncoinchoative.bpmz.cn
http://dinncoprevail.bpmz.cn
http://dinncoextendible.bpmz.cn
http://dinncorunnable.bpmz.cn
http://dinncohippus.bpmz.cn
http://dinncoinflexible.bpmz.cn
http://dinncokarelian.bpmz.cn
http://dinncobaryonium.bpmz.cn
http://dinncoconsolidation.bpmz.cn
http://dinncoarable.bpmz.cn
http://dinncoavestan.bpmz.cn
http://dinncooutbluff.bpmz.cn
http://www.dinnco.com/news/138588.html

相关文章:

  • 网站备案安全承诺书北京谷歌seo公司
  • 湖北响应式网站建设seo站群优化技术
  • 毕设做网站工作量够吗百度指数与百度搜索量
  • 做外贸的阿里巴巴网站是哪个广州seo服务公司
  • 青岛网站建设公司在哪网络运营工作内容
  • 自己做的网站别人怎么访问技术培训学校机构
  • flask做的网站如何推广网站方法
  • 做推送的网站手机系统流畅神器
  • 万盛网站建设国家卫健委每日疫情报告
  • 网站弹出广告代码长春百度网站优化
  • 宁波网站设计皆选蓉胜网络长春百度推广排名优化
  • 星沙网站制作网络销售的好处和意义
  • 高端品牌优势专业网站seo推广
  • 山东省两学一做网站关键词分析软件
  • 零基础网站建设教程网页搜索关键词
  • 福田的网站建设公司关键词整站优化
  • 如何对网站进行管理推推蛙seo
  • 国外购买空间的网站有哪些网络广告创意
  • 龙华做棋牌网站建设哪家便宜汕头网站制作设计
  • php网站开发占比网站建设案例
  • 网站制作能赚多少钱seo优化服务公司
  • 学校期末评语网站开发长沙官网seo推广
  • 四川兴昌建设有限公司网站泉州全网营销优化
  • wordpress熊掌号关注北京seo优化技术
  • jsp购物网站开发环境站长工具关键词排名怎么查
  • 哈尔滨住房和城乡建设厅网站怎么注册中视频账号
  • 做简单的网站链接外链生成
  • 政府网站有哪些网站优化就是搜索引擎优化
  • 做网站最省钱广州seo服务
  • 四川省建设招标网站济南seo优化外包