排序
AlexCookie
感谢互联网,让我在知识的海洋遨游,感谢广大网友,把所学知识分享,咱们一起进步!博主主分享:算法,计算机方向。
展开
-
搜索插入位置<leetcode>
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为O(logn)的算法。 如: nums = [1,3,5,6], target = 5 枚举出1:0 3:1 5:2 6:3 判断target是否在其中,由于是有序列表, 存在num>target即为不存在该数,改为输出其插入位置 或者遍历到了列表尾部,插入位置为len(nums)。 class Solution: def se...原创 2022-03-23 13:23:02 · 292 阅读 · 0 评论 -
完成一半题目<leetcode>
有 N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目,整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题,请返回被选的 N 道题目至少包含多少种知识点类型。 void shell(int a[],int n)//希尔排序 从大到小 { int d = n / 2; while(d > 0) { for(int i = d + 1;i < n;i ++)原创 2022-03-22 18:38:56 · 1408 阅读 · 0 评论 -
寻找二叉树 以某个值为根的点的 深度,先序创树主要代码
寻找二叉树 以某个值为根的点的 深度,先序创树 //先序创建树,初始化树 typedef struct Btree{ char data; struct Btree *lc; struct Btree *rc; }*Btree,node;//树结点 结构体 Btree CT() { char c; Btree t; scanf("%c",&c); if(c == '#') { //如果# 说明该结点 不存在 t = NULL; } else { t = (B原创 2022-03-05 14:51:33 · 214 阅读 · 0 评论 -
归并排序,快速排序,希尔排序主要代码对比
/*o(nlogn) time efficiency*/ //归并排序 o(nlogn) o(n) stable //归并排序 o(nlogn) o(n) stable void MA(int a[],int be,int mid,int en)//数组的a[0] 不保存元素 { int b = be,ob = mid + 1,k = 0,c[101] = {0};//c数组为临时数组 //当且当 b,ob在范围内 while(b <= mid && ob <原创 2022-03-04 23:42:46 · 176 阅读 · 0 评论 -
冒泡,选择,插入对比代码
冒泡,选择,插入排序的代码原创 2022-03-04 22:06:08 · 521 阅读 · 0 评论 -
基数排序主要代码
/*o(n*k) time efficiency*/ //基数排序 o(n*k) o(n+k) stable typedef struct base{ int key; float data; int next;//假指针 }base; //返回 排序后首位元素的小标,访问该元素用 a[BS[a],n].key int BS(base a[],int n) { int f[10],e[10];//f[k],e[k]分别为 指向 基数池k的第一个元素“位置”和最后一个元素位置,某池只有一个元..原创 2022-03-04 21:36:14 · 645 阅读 · 0 评论 -
希尔排序主要代码o(nlogn) o(1) stable
//希尔排序 o(nlogn) o(1) stable void shell(int a[],int n) { int d = n / 2;//初始增量 while(d >= 1) { for(int i = d + 1;i < n;i ++)//起始点往后 { int j = i - d,x = a[i]; while(j > 0 && a[j] > x)//以该增量 往前遍历 对比 { a[j + d] = a[j]..原创 2022-03-04 21:34:43 · 116 阅读 · 0 评论