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

怎么查看网站空间大小采购系统有哪些

怎么查看网站空间大小,采购系统有哪些,凡客建站网,小公司网站建设排序的方式 排序的稳定性 什么是排序的稳定性#xff1f; 不改变相同数据的相对顺序 排序的稳定性有什么意义#xff1f; 假定一个场景#xff1a; 一组成绩#xff1a;100#xff0c;88#xff0c;98#xff0c;98#xff0c;78#xff0c;100#xff08;按交卷顺序…排序的方式 排序的稳定性 什么是排序的稳定性 不改变相同数据的相对顺序 排序的稳定性有什么意义 假定一个场景 一组成绩10088989878100按交卷顺序排列先交在前 先需要对这组数据按降序排列如果分数相同先交卷的排在前面。 在以上这种场景下选择具有稳定性的排序方式就很有必要。 排序方式分析比较汇总 排序方式时间复杂度空间复杂度稳定性InsertO(N2)O(1)√ShellO(N1.3)O(1)×预排序相同数可能分到不同组SelectO(N2)O(1)×9,9,4,4(swap(4,9)后4和4的相对顺序改变)HeapO(N*logN)O(1)×BubbleO(N2)O(1)√QuickO(N*logN)大量重复数据N2O(logN)(递归调用栈帧)×最后相遇那下交换会打乱MergeO(N*logN)O(N(logN) )√CountO(Nrange)O(range)× 912.排序数组 - 力扣LeetCode 题目链接 /*** Note: The returned array must be malloced, assume caller calls free().*///栈 // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* _a;int _top; // 栈顶int _capacity; // 容量 }Stack; // 初始化栈 void StackInit(Stack* ps) {STDataType* tmp (STDataType*)malloc(4 * sizeof(STDataType));if (!tmp){perror(malloc fail);exit(-1);}ps-_a tmp;ps-_top 0;ps-_capacity 4; } // 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);if (ps-_capacity ps-_top){STDataType* tmp (STDataType*)realloc(ps-_a, 2 * ps-_capacity * sizeof(STDataType));if (!tmp){perror(realloc fail);exit(-1);}ps-_a tmp;ps-_capacity * 2;}ps-_a[ps-_top] data;ps-_top; } // 出栈 void StackPop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));assert(ps-_top);ps-_top--;} // 获取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);assert(ps-_top);return ps-_a[ps-_top - 1]; } // 获取栈中有效元素个数 int StackSize(Stack* ps) {assert(ps);return ps-_top; } // 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(Stack* ps) {assert(ps);return ps-_top 0; } // 销毁栈 void StackDestroy(Stack* ps) {assert(ps);free(ps-_a);ps-_capacity ps-_top 0;ps-_a NULL; }//插入排序 void InsertSort(int* a, int n) {assert(a);for (int i 1; i n; i){int tmp a[i];int end i - 1;while (end 0){if (a[end] tmp){break;}//a[end 1] a[end--];???为什么错误a[end 1] a[end];end--;}a[end 1] tmp;}}// 希尔排序 void ShellSort(int* a, int n) {assert(a);int gap n / 2;while (gap){for (int i 1; i n; i){int tmp a[i];int end i - gap;while (end 0){if (a[end] tmp){break;}a[end gap] a[end];end - gap;}a[end gap] tmp;}gap / 2;} }void Swap(int* x, int* y) {assert(x y);int tmp *x;*x *y;*y tmp; }// 选择排序 void SelectSort(int* a, int n) {assert(a);int begin 0, end n - 1;while (begin end){int mini begin, maxi end;//[begin1,end-1]for (int j begin; j end; j){if (a[j] a[mini])mini j;if (a[j] a[maxi])maxi j;}//swap之前 mina[mini] maxa[maxi]Swap(a[begin], a[mini]);//swap之后:begin → min ; mini → original-a[begin]//if(original-a[begin] → max)则会影响 a[maxi] ? maxif (begin maxi)//如果原本begin指向的数是max则swap之后这个数已经被交换到了mini所指向的位置maxi mini;Swap(a[end], a[maxi]);begin;--end;} }// 堆排序 void AdjustDwon(int* a, int n, int root) {assert(a);int parent root;int child parent * 2 1;while (child n){if ((child 1) n a[child 1] a[child])child;if (a[parent] a[child])Swap(a[parent], a[child]);elsebreak;parent child;child parent * 2 1;} } void HeapSort(int* a, int n) {assert(a);//建大堆for (int parent (n - 1 - 1) / 2; parent 0; parent--){AdjustDwon(a, n, parent);}int end n - 1;while (end){Swap(a[0], a[end]);AdjustDwon(a, end, 0);end--;} } // 冒泡排序 void BubbleSort(int* a, int n) {assert(a);for (int j 0; j n; j){for (int i 0; i n - j - 1; i){if (a[i] a[i 1])Swap(a[i], a[i 1]);}} }// 快速排序递归实现 // 三数取中 int GetMidIndex(int* a, int left, int right) {int begin left, end right;int middle (left right) / 2;if (a[begin] a[end]){if (a[middle] a[begin])return begin;else if (a[middle] a[end])return end;elsereturn middle;}else{if (a[middle] a[end])return end;else if (a[middle] a[begin])return begin;elsereturn middle;}} // 快速排序hoare版本 int hoareSort1(int* a, int left, int right) {assert(a);if (left right)return;// if ((right - left 1) 5)// {// InsertSort(a left, right - left 1);// }else{int key left, begin left, end right;int mid GetMidIndex(a, left, right);Swap(a[mid], a[key]);while (left right){while (left right a[right] a[key]){--right;}while (left right a[left] a[key]){left;}Swap(a[left], a[right]);}Swap(a[key], a[right]);//leftright//[begin,left-1] [right1,end]hoareSort1(a, begin, left - 1);hoareSort1(a, right 1, end);}return right; }// 快速排序挖坑法 int HoleSort2(int* a, int left, int right) {if (left right)return;int key a[left];int hole left, begin left, end right;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[right] key;//[begin,left-1] [right1,end]HoleSort2(a, begin, left - 1);HoleSort2(a, right 1, end);return right; }// 快速排序前后指针法 int PointSort3(int* a, int left, int right) {assert(a);if (left right)return;int keyi left;int prev left, cur left;while (cur right){if (a[cur] a[keyi] cur ! prev)Swap(a[prev], a[cur]);cur;}Swap(a[keyi], a[prev]);//[left,prev-1][prev1,right]PointSort3(a, left, prev - 1);PointSort3(a, prev 1, right);return prev; }// 快速排序 非递归实现 void QuickSort(int* a, int left, int right) {assert(a);Stack st;StackInit(st);StackPush(st, left);StackPush(st, right);while (!StackEmpty(st)){int end StackTop(st);StackPop(st);int begin StackTop(st);StackPop(st);int keyi hoareSort1(a, begin, end);//[begin,keyi-1] keyi [keyi1,end]if (keyi 1 end){StackPush(st, keyi 1);StackPush(st, end);}if (begin keyi - 1){StackPush(st, begin);StackPush(st, keyi - 1);}}StackDestroy(st); } // 归并排序递归实现 void _MergeSort(int* a, int left, int right, int* tmp) {assert(a tmp);if (left right)return;int middle (left right) / 2;//[left, middle] [middle1,right]//[begin1,end1] [begin2,end2]int begin1 left, end1 middle, begin2 middle 1, end2 right;//递归分解_MergeSort(a, begin1, end1, tmp);_MergeSort(a, begin2, end2, tmp);//mergeint i begin1;while (begin1 end1 begin2 end2){if (a[begin1] a[begin2]){tmp[i] a[begin1];}else{tmp[i] a[begin2];}}while (begin1 end1){tmp[i] a[begin1];}while (begin2 end2){tmp[i] a[begin2];}memcpy(a left, tmp left, sizeof(int) * (right - left 1)); } void MergeSort(int* a, int n) {assert(a);int* tmp (int*)malloc(sizeof(int) * n);if (!tmp){perror(malloc fail);exit(-1);}_MergeSort(a, 0, n - 1, tmp);free(tmp);tmp NULL; }// 归并排序非递归实现 void MergeSortNonR(int* a, int n) {assert(a);int* tmp (int*)malloc(sizeof(int) * n);if (!tmp){perror(malloc fail);exit(-1);}int range 1;while (range n){for (int i 0; i n; i 2 * range){int begin1 i, end1 i range - 1;int begin2 i range, end2 i 2 * range - 1;int j begin1;//越界//end1越界if (end1 n){end1 n - 1;begin2 end2 1;//begin2 end2;}else if (begin2 n){begin2 end2 1;//begin2 end2;}else if (end2 n){end2 n - 1;}//mergewhile (begin1 end1 begin2 end2){if (a[begin1] a[begin2]){tmp[j] a[begin1];}else{tmp[j] a[begin2];}}while (begin1 end1){tmp[j] a[begin1];}while (begin2 end2){tmp[j] a[begin2];}}memcpy(a, tmp, sizeof(int)*n);range * 2;}free(tmp);tmp NULL; }// 计数排序 void CountSort(int* a, int n) {assert(a);int min a[0], max a[0];for (size_t i 0; i n; i){if (a[i] max)max a[i];if (a[i] min)min a[i];}int size max - min 1;int* tmp (int*)calloc(size, sizeof(int));if (!tmp){perror(calloc fail);exit(-1);}//计数for (size_t i 0; i n; i){tmp[*(a i) - min];}int j 0;for (size_t i 0; i size; i){while (tmp[i]--){a[j] i min;}}free(tmp);tmp NULL; }int* sortArray(int* nums, int numsSize, int* returnSize){*returnSizenumsSize;//InsertSort(nums,numsSize);//超出时间限制//ShellSort(nums,numsSize);//SelectSort(nums,numsSize);//超出时间限制//HeapSort(nums,numsSize);//BubbleSort(nums,numsSize);//超出时间限制//hoareSort1(nums,0,numsSize-1);//对于大量重复数据超出时间限制//HoleSort2(nums,0,numsSize-1);//超出时间限制//PointSort3(nums,0,numsSize-1);//对于大量有序数据超出时间限制//QuickSort(nums,0,numsSize-1);//对于大量重复数据超出时间限制//MergeSort(nums,numsSize);//MergeSortNonR(nums,numsSize);//CountSort(nums,numsSize);return nums; }
http://www.w-s-a.com/news/517733/

相关文章:

  • 海外贸易在什么网站做怎么排名到百度第一页
  • 线上注册公司是在哪个网站做高仿网站
  • 网站构架图网上推广平台哪个好
  • 公司网站首页图片素材vi设计的目的和意义
  • 网站的需求分析都有哪些内容济南营销型网站建设团队
  • 怎么选择优秀的网站建设公司生鲜网站开发
  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件
  • 重庆茂尔建设集团有限公司网站网页制作教程软件
  • 金湖建设工程质量监督网站高端网站建设公司哪里济南兴田德润实惠吗
  • 站酷设计网站官网入口文字设计seo网站推广工具
  • 专业移动网站建设网站建设软件dw
  • 摄影网站设计思想视觉传达毕业设计作品网站
  • 需要优化的网站有哪些设计装修app
  • 数据型网站建设东莞好的网站国外站建设价格
  • 网络营销方法有哪些举例seo应用领域有哪些
  • 建设银行官方网站官网做网站的专业叫什么
  • 矿区网站建设濮阳做网站的公司有哪些
  • 有什么网站可以自己做书甘肃建设厅网站首页
  • 门户网站建设哪专业怎么把自己做的网站登录到网上
  • 如何做网站小编餐饮业手机php网站