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

电商主图设计网站wap手机网站模板

电商主图设计网站,wap手机网站模板,义乌做网站的,手机网站会员中心模板下载宝子#xff0c;你不点个赞吗#xff1f;不评个论吗#xff1f;不收个藏吗#xff1f; 最后的最后#xff0c;关注我#xff0c;关注我#xff0c;关注我#xff0c;你会看到更多有趣的博客哦#xff01;#xff01;#xff01; 喵喵喵#xff0c;你对我真的很重要… 宝子你不点个赞吗不评个论吗不收个藏吗 最后的最后关注我关注我关注我你会看到更多有趣的博客哦 喵喵喵你对我真的很重要。 前言 小喵喵课堂开课来今天我们学习七个常见的排序哦哦耶 喵喵今天也要加油哦 来吧不乱叫上导图 目录 前言 八大经典排序的概述 直接插入排序 希尔排序 选择排序 堆排序 冒泡排序 快速排序(快排 归并排序 总结 ┗|O′|┛ 嗷~~怎么能忘了基数排序呢补上补上 八大经典排序的概述 八大排序算法是指常见的八种经典排序算法它们分别是冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序和基数排序。 冒泡排序比较相邻的元素如果顺序错误就交换它们重复这个过程直到整个数组有序。选择排序每次从待排序的数组中选择最小或最大的元素放在已排序数组的末尾直到整个数组有序。插入排序遍历数组将当前元素插入已排好序的子数组中的适当位置直到整个数组有序。希尔排序通过设置间隔将数组分组对每个分组进行插入排序逐渐减小间隔直到间隔为1时进行最后一次插入排序。归并排序采用分治的思想将待排序数组划分为较小的子数组然后递归地对子数组进行排序并将排好序的子数组合并成更大的有序数组。快速排序选取一个基准元素将数组划分为左右两部分左边部分都比基准元素小右边部分都比基准元素大在递归地对左右两部分进行快速排序。堆排序将待排序数组构建成一个大顶堆然后将堆顶元素与最后一个元素交换并重新调整堆重复这个过程直到整个数组有序。基数排序根据元素的每个位上的值进行排序先按低位排序再按高位排序直到所有位都排序完成。 直接插入排序 直接插入的排序规则如图所示 将end和tmp代入进去思考一来的3就算起始点排好了位置作为end,然后tmp是44443tmpend,所以不交换位置算排好了end1tmp1。那么第二次比较end是44tmp是38endtmp交换位置38排在44前面。那么第三次比较5比44小比38小排在38前面。以此类推循环排好数组。 void InSert(int* a, int n) {for (int i 1; i n; i){int end i - 1;int tmp a[i];while (end 0){if (tmp a[end]){a[end 1] a[end];end--;}else{break;}}a[end 1] tmp;} } 希尔排序 希尔排序是直接插入排序的升级版先对数组进行有规律的分组分成多个组然后每个小组进行直接插入排序。每个小组排完后再进行一次直接插入排序就要轻松地多能够快速排好大大提高了排序的效率。 分成绿蓝红三组分别进行直接插入排序。 void InsertSort(int* a, int n) {int gap 3;for (j0;jgap;j){for (int i j; i n-gap; igap){int end i;int tmp a[igap];while (end 0){if (tmp a[end]){a[end gap] a[end];end-gap;}else{break;}}a[end gap] tmp;}}} void InsertSort(int* a, int n) {int gap n;int j 0;while (gap 1){gap gap / 2;for (j 0; j gap; j){for (int i j; i n - gap; i gap){int end i;int tmp a[i gap];while (end 0){if (tmp a[end]){a[end gap] a[end];end - gap;}else{break;}}a[end gap] tmp;}}}} 选择排序 选择排序很直观就是要选择我们先选择3作为有序数组然后从3后面的数组中选出最小的数并于3进行比较谁小谁站在前面。2比3小2与3交换位置。依次往后推拍成有序数组。 喵很难评这是简单版的一个点移动而我们一般上的是困难版的两个点喵不好理解喵喵也是搞了好久才明白滴喵。那么让我们开始吧猫猫队冲冲冲 两个点的移动建议结合代码自己也跟着走一走感觉不就来了嘛 //这是两个点的移动 void SelectSort(int* a, int n) {int left 0, right n - 1;while (left right){int mini left, maxi left;for (int i left 1; i right; i){if (a[i] a[mini]){mini i;}if (a[i] a[maxi]){maxi i;}}Swap(a[left], a[mini]);// 如果left和maxi重叠交换后修正一下if (left maxi){maxi mini;}Swap(a[right], a[maxi]);left;--right;} }堆排序 就是以层序的方式从下往上从大到小的排。升序建大堆降序建小堆。 // 左右子树都是大堆/小堆 void AdjustDown(int* a, int n, int parent) {int child parent * 2 1;while (child n){// 选出左右孩子中大的那一个if (child 1 n a[child 1] a[child]){child;}if (a[child] a[parent]){Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} }void HeapSort(int* a, int n) {// 建堆 -- 向下调整建堆 -- O(N)for (int i (n - 1 - 1) / 2; i 0; --i){AdjustDown(a, n, i);}// 自己先实现 -- O(N*logN)int end n - 1;while (end 0){Swap(a[end], a[0]);AdjustDown(a, end, 0);--end;} } 冒泡排序 冒泡排序好理解教学意义重大。简单的来说就是从一端开始两两交换把小的换在前面去就OK了 void BubbleSort(int* a, int n) {for (int j 0; j n; j){bool exchange false;for (int i 1; i n - j; i){if (a[i - 1] a[i]){Swap(a[i - 1], a[i]);exchange true;}}if (exchange false){break;}} } 快速排序(快排 快排有很多种方法比如hoare法挖坑法前后指针法 1.hoare法 无言如图所示 int GetMidNumi(int* a, int left, int right) {int mid (left right) / 2;if (a[left] a[mid]){if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}}else // a[left] a[mid]{if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}} } int PartSort1(int* a, int left, int right) {// 三数取中int midi GetMidNumi(a, left, right);if (midi ! left)Swap(a[midi], a[left]);int keyi left;while (left right){// 右边找小while (left right a[right] a[keyi])--right;// 左边找大while (left right a[left] a[keyi])left;Swap(a[left], a[right]);}Swap(a[keyi], a[left]);keyi left;return keyi; } 挖坑法 int GetMidNumi(int* a, int left, int right) {int mid (left right) / 2;if (a[left] a[mid]){if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}}else // a[left] a[mid]{if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}} } int PartSort2(int* a, int left, int right) {// 三数取中int midi GetMidNumi(a, left, right);if (midi ! left)Swap(a[midi], a[left]);// 21:10继续int key a[left];int hole left;while (left right){// 右边找小while (left right a[right] key)--right;a[hole] a[right];hole right;// 左边找大while (left right a[left] key)left;a[hole] a[left];hole left;}a[hole] key;return hole; } 前后指针法 int GetMidNumi(int* a, int left, int right) {int mid (left right) / 2;if (a[left] a[mid]){if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}}else // a[left] a[mid]{if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}} } int PartSort3(int* a, int left, int right) {// 三数取中int midi GetMidNumi(a, left, right);if (midi ! left)Swap(a[midi], a[left]);int keyi left;int prev left;int cur left 1;while (cur right){if (a[cur] a[keyi] prev ! cur)Swap(a[cur], a[prev]);cur;}Swap(a[prev], a[keyi]);keyi prev;return keyi; } 归并排序递归 int GetMidNumi(int* a, int left, int right) {int mid (left right) / 2;if (a[left] a[mid]){if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}}else // a[left] a[mid]{if (a[mid] a[right]){return mid;}else if (a[left] a[right]){return left;}else{return right;}} } int PartSort3(int* a, int left, int right) {// 三数取中int midi GetMidNumi(a, left, right);if (midi ! left)Swap(a[midi], a[left]);int keyi left;int prev left;int cur left 1;while (cur right){if (a[cur] a[keyi] prev ! cur)Swap(a[cur], a[prev]);cur;}Swap(a[prev], a[keyi]);keyi prev;return keyi; } void QuickSort(int* a, int left, int right) {if (left right)return;int keyi PartSort3(a, left, right);QuickSort(a, left, keyi - 1);QuickSort(a, keyi 1, right); } 总结 疯了疯了怎么才能讲清楚啊白话文一大堆还是图来说清楚没看清楚的啾咪留言喵喵鸭你的明白就是我的成长酸Q喵。 宝子你不点个赞吗不评个论吗不收个藏吗 最后的最后关注我关注我关注我你会看到更多有趣的博客哦 喵喵喵你对我真的很重要。
http://www.zqtcl.cn/news/574780/

相关文章:

  • 怎么用ps做简单网站个人商城网站建设
  • mvc做门户网站自适应网站制作费用
  • 建设工程协会网站查询系统成品网站源码在线观看
  • 宝塔做两个网站安卓版wordpress
  • 即墨网站建设招聘企业类网站有哪些
  • 汕头网站建设开发软件开发属于哪个专业
  • 企业网站建设规划书阿里云虚拟机怎么做多个网站
  • 营销平台网站建设做视频怎么做
  • 吉林房地产网站开发icp网站授权函
  • 深圳公司网站建设哪家好郑州短视频培训机构
  • 网络培训班答案百度seo收录软件
  • 中核工建设集团有限公司网站网站建设管理中se是什么意思
  • 网站如何做关键词引流网站怎么快速做收录
  • 网站建设文案网站设计要学哪些
  • 品牌网站建设gs平台搭建工具
  • 怎么把自己做的网站弄到域名上柳州游戏网站建设
  • 做衣服类网站策划书高端建设网站企业
  • 珠海网站建设公司有哪些代替做网站推广
  • 泰安的网站建设公司旅游网站建设规划报告怎么写
  • 如何建设淘宝客网站什么是网络营销常用的网络营销方法有哪些
  • 大连华南网站建设深圳网站建设公司的外文名是
  • 做招投标网站云南昆明网站建设价格
  • 越秀区网站建设公司微网站菜单
  • vs2017网站开发广州网站建设易得
  • 长沙企业网站建设价格陕西省门户网站建设政策
  • 龙华营销型网站制作wordpress最近评论
  • 嘉兴微信网站做一个招聘信息的网站_用什么做网站的软件
  • 各种购物网站大全上海市建设工程检测网
  • 网站推广沈阳php网站开发接口开发
  • 莱芜 做网站 公司官网开发