图解十大排序算法

学了数据结构之后,决定好好再回顾一下这几种排序算法,加深一下自己的印象的同时也希望能够帮助到大家理解这些算法和思想。
如果发现错误可以私信或评论哈!(觉得有用的伙伴也可以收藏赞下鸭^_^

首先先介绍一下排序算法的分类:
在这里插入图片描述

我们接下来介绍的是内部排序中的算法。好的,那么开始了!

插入排序

直接插入排序

直接插入排序是最简单的排序方法,每次将一个待排序的记录,插入已经排好的数据序列中,得到一个新的长度增1的有序表,如下所示:
在这里插入图片描述

算法步骤:

  • 设待排序的记录存储在数组r[1,…n]中,可以把第一个记录r[1]作为一个有序序列
  • 依次将r[i]插入已经拍好的有序序列中r[i,…(i-1)]中,并保持有序

图解过程如下:
在这里插入图片描述
后续操作如上,最终得出升序排序结果:1、7 、 7* 、 12、 15、 19、 30 、45

程序如下:

注意elemtype为自定义数据类型,如typedef int elemtype;

void InsertSort(elemtype arr[],int length)
{int j;for(int i=2;i<=length;i++){arr[0] = arr[i];//设置监视哨j = i-1;   //从当前元素的前一个判断while(arr[0] < arr[j] && j>0)  {//如果当前元素大于待插入元素,则后移一位arr[j+1] = arr[j];  j=j-1;}//否则插入到比待插入元素小的后面arr[j+1] = arr[0];}
}

折半插入排序

折半插入排序其实就是针对于直接插入排序中的查找部分进行了折半查找优化

图解过程如下:

图示表示已经到达对最后一个数据进行排序时的状态!!
在这里插入图片描述

//折半插入排序
void BinSort(elemtype arr[],int len)
{int j,x,low,high,mid;for(int i=2;i<=len;i++){arr[0] = arr[i];  //哨兵记录low = 1;high = i-1;while(low <= high)  //确定插入的位置{mid = (low + high)/2;if(arr[0] < arr[mid])high = mid - 1;elselow = mid + 1;}for(j = i-1;j>=low;j--)  //将该位置之后的元素后移arr[j+1]=arr[j];arr[low] = arr[0];  //插入}
}

链表插入排序

链表插入排序原理同直接插入排序相同,区别就是链表的插入操作,不需要像数组一样将其他元素后移,插入过程时间复杂度小。

图解过程:
在这里插入图片描述

代码如下:

insert指向待插入结点;

n指向下一个待插入结点;

typedef struct Node{elemtype data;struct Node * next;
}Node,*Linklist;
//链表插入排序
void CreatLinklist(Linklist *L)//创建一个链表
{elemtype e;Node * add;(*L) = (Linklist)malloc(sizeof(Node));(*L)->next = NULL;while(scanf("%d",&e) != EOF){add = (Linklist)malloc(sizeof(Node));add->data = e;add->next = (*L)->next;(*L)->next = add;}
}
bool LinkInsertSort(Linklist *L)//链表插入排序
{Node *insert,*temp,*n;if((*L)->next == NULL || (*L)->next->next == NULL)  //链表没有结点或者只有一个则不需要排序return false;temp = (*L);insert = temp->next->next;n = insert->next;temp->next->next = NULL;while(insert){while(temp->next != NULL){if(insert->data >= temp->next->data)temp = temp->next;else{insert->next = temp->next;temp->next = insert;break;}}if(temp->next == NULL){insert->next = NULL;temp->next = insert;}insert = n;if(n != NULL)n = n->next;temp = (*L);}return true;
}void PrintLink(Linklist L)//打印链表
{Node * temp;temp = L->next;while(temp){printf("%d ",temp->data);temp = temp->next;}printf("\n");
}

希尔排序

直接插入排序中,如果待排序的数据少并且基本有序,则排序效率较高。因此我们便需要想办法优化,将其减少数据个数并且使其基本有序,这便有了希尔排序

希尔排序是将待排序记录按下标的一定增量进行分组(减少其数据个数),并且对每组数据进行直接插入排序算法进行排序(使其基本有序)。随着增量的减少,每组包含的数据越来越多,最终当增量为1时,也就是对整个数组再进行一次直接插入排序,则完成排序任务。

算法原理

  1. 设待排序的记录存储存储在数组r[1…n],中增量序列为{d1,d2,d3,…,dt}。
  2. 第一趟取增量d1。所有间隔为d1的记录分在一组。对每组记录进行直接插入排序。
  3. 第二趟取增量d2。所有间隔为d2的记录分在一组。对每组记录进行直接插入排序。
  4. 依次进行下去,直到索取增量dt等于1。所有记录在一组中进行直接插入排序。完成

假设初始序列为21,23,42,52,13,53,67,45,24,9,取增量d{5,3,1}
在这里插入图片描述

代码:

//希尔排序
void ShellSort(elemtype arr[],int n,int dt[],int t)
{for(int k=0;k<t;k++){DtSort(arr,n,dt[k]);}}
void DtSort(elemtype arr[],int n,int dt)
{int i,j;for(i=dt+1;i<=n;i++){if(arr[i-dt] > arr[i]){arr[0] = arr[i];for(j=i-dt;j>0 && arr[j]>arr[0];j-=dt)arr[j+dt] = arr[j];arr[j+dt] = arr[0];}}
}

交换排序

冒泡排序

冒泡排序是一种最简单的排序算法,通过两两比较,如果逆序就交换,使数据最大的泡泡先冒出来,因此得名冒泡排序!
在这里插入图片描述

代码:

//冒泡排序
void BubleSort(elemtype arr[],int len)
{int i,j,temp;bool flag;i = len;flag = true;while(i>0 && flag)  //如果flag=false,则表示上一次排序没有进行交换,即已经排好了{flag = false;  for(j=1;j<i;j++){if(arr[j+1] < arr[j]){flag = true;   //如果temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;}}i--;}
}

快速排序

快速排序的基本思想使一种分治的策略,即将一组序列分割成独立的两部分,其中一部分的数据比另一部分的数据小,然后再按照此方法对两部分序列再进行分治,聪明的人都看出来了,这不就是递归调用嘛。

算法思想:
  1. 划分:再r[low:high]中选一个元素作为基准元素r[base],将数组划分为两个数组r[low:base-1]和r[base+1:high],并且r[low:base-1]中的元素均小于r[base],r[base+1:high]中的元素均大于等于r[base]。
  2. 分治:对r[low:base-1]和r[base+1:high]分别再进行递归调用进行快速排序

基准元素的选取有很多钟方式,可以选r[1],r[len],r[mid]等等,我们取第一个元素人[1]作为基准元素base。

算法步骤:
  1. 首先取数组的第一个元素r[1]作为基准元素。
  2. 从右向左扫描,找小于等于基准的数,如果找到r[i]和r[j]交换,i++。
  3. 从左向右扫描,找大于基准的数,如果找到则r[i]和r[j]交换,j++。
  4. 重复第二步和第三步操作,直到i和j重合,返回该该位置,该位置的数正好是基准元素。
  5. 至此,完成一趟排序。此时以mid为界,将源序列分为两个子序列左侧的元素小于等于基准元素。其中右侧子序列元素大于基准元素,再分别对这两个子序列进行快速排序。

设初始序列为:21,23,42,52,13,53,67,45,24,9
在这里插入图片描述

代码:

//快速排序
void QuickSort(elemtype arr[],int low,int high)
{int mid;if(low<high){mid = Partition(arr,low,high);QuickSort(arr,low,mid-1);QuickSort(arr,mid+1,high);}
}
int Partition(elemtype arr[],int low,int high)
{int left=low,right=high,base = arr[low];int temp;while(left<right){while(left<right && arr[right]>=base){right--;}if(left<right){temp = arr[right];arr[right] = arr[left];arr[left] = temp;left ++;}while(left<right && arr[left]<=base){left++;}if(left<right){temp = arr[right];arr[right] = arr[left];arr[left] = temp;right --;}}
}
算法优化:

由上述算法过程可知,在分治的过程中,其实就是不断的将序列分为大、小两部分序列,操作就是不断和base比较交换,因此我们可以优化算法减少交换次数。

优化前:right<base的话交换r[left]和r[right],left>base的话交换r[left]和r[right]

优化后:当遇到一组right<base并且left>base时交换r[left]和r[right]

过程详见如下:

  1. 去基准数base
  2. 右走,找到小于基准数的数r[right]
  3. 左走,找到大于基准数的数r[left]
  4. 交换r[right]和r[left],left++,fight–
  5. 重复2~4操作直到left==right,如果r[left]>base,交换r[left-1]和r[low],返回mid=left-1,否则交换r[left]和r[low],返回mid=left。

过程图解
在这里插入图片描述

优化后的int PartitionPlus(elemtype arr[],int low,int high)

int PartitionPlus(elemtype arr[],int low,int high)
{int left=low,right=high,base = arr[low];int temp;while(left<right){while(left<right && arr[right]>=base){right--;}while(left<right && arr[left]<=base){left++;}if(left<right){temp = arr[right];arr[right] = arr[left];arr[left] = temp;right --;left ++;}}if(arr[left]>base){temp = arr[low];arr[low] = arr[left-1];arr[left-1] = temp;return left-1;}else{temp = arr[low];arr[low] = arr[left];arr[left] = temp;return left;}
}

选择排序

简单选择排序

简单选择排序也是最简单的一种排序方法。即每次选择出最小的一个数放在数组最前面。算法原理大家都懂,就不放图了(其实是懒得做了_)。

直接上代码:

void SimpleSelectSort(elemtype arr[],int len)
{int i,j,min_tag,temp;for(i=1;i<len;i++){min_tag = i;for(j=i+1;j<=len;j++){if(arr[j]<arr[min_tag]){min_tag = j;}}if(min_tag != i){temp = arr[i];arr[i] = arr[min_tag];arr[min_tag] = temp;}}
}

堆排序

堆排序是一种树形选择排序算法。

堆可以看作一课完全二叉树的顺序存储结构。在这颗完全二叉树中,如果每一个节点的值都大于等于左右孩子的值,称为最大堆(大根堆)。如果每一个节点的值都小于等于左右孩子的值,则称为最小堆(小根堆)。

其中堆排序用了完全二叉树的一个非常重要的性质:

如果一个节点的下标为i,其左孩子下标为2i,有孩子为2i+1,双亲下表为i/2。

算法步骤

  1. 根据初始序列构建初始堆
  2. 堆顶和最后一个元素交换,即r[1]和r[n]交换,并存储r[n],并将r[1…(n-1)]重新调整为堆
  3. 堆顶和最后一个元素交换,即r[1]和r[n-1]交换,并存储r[n-1],并将r[1…(n-2)]重新调整为堆
  4. 循环n-1次,即直到堆中只有一个元素

从上述算法步骤了解到我们需要完成的操作有:

  • 创建堆的过程
  • 堆顶记录存储
  • 调整堆

交换操作之后会导致树不在满足堆的定义:
在这里插入图片描述

调整堆

调整堆又叫做下沉操作。

将堆顶与左右孩子比较,如果比孩子大,则已经调整为堆;如果比孩子小,则与较大的孩子交换;然后继续和孩子比较大小,直到比较到叶子节点。
在这里插入图片描述

构建初始堆

构建过程:

首先按照完全二叉树的顺序构建一棵完全二叉树,然后从最后一个分支节点n/2开始调整堆依次将序号n/2-1,n/2-2,…,1的节点执行下沉操作调整为堆

为什么要从最后一个分枝结点开始呢?因为调整堆的前提是除了堆顶之外,其他结点都满足最大堆的定义,只需要堆顶下沉即可。而叶子结点没有孩子,因此可以视为一个堆,从最后一个分支结点开始调整堆,调整后该结点以下的分支均满足堆定义,其双亲节点调整时,其左右子树均已经满足最大堆的定义。

设初始序列为{18,6,10,16,28,2,17,20,30,12}
在这里插入图片描述

排序

接下来就是最后一个操作了…做图做的眼睛疼T T,加油。

过程就是堆顶与最后节点交换,同时存储,然后堆顶下沉,直到只剩一个节点。
在这里插入图片描述
代码:

//堆排序
void HeapSort(elemtype arr[],int n)
{int temp;CreatHeap(arr,n);//创建初始堆while(n>1)//循环n-1次{//交换temp = arr[1];arr[1] = arr[n];arr[n] = temp;n--;//下沉Sink(arr,1,n);}
}void CreatHeap(elemtype arr[],int n)
{for(int i=n/2;i>0;i--)//从最后一个分支节点开始创建堆{Sink(arr,i,n);}
}
void Sink(elemtype arr[],int k,int n)
{int temp;while(2*k <= n)//左孩子为2*k{int j=2*k;//j指向左孩子if(j+1<=n && arr[j]<arr[j+1])//如果有有孩子并且右孩子比左孩子大{j++;}if(arr[k]>arr[j])//双亲大于两个孩子节点,已经为堆{break;}else//否则交换{temp = arr[k];arr[k] = arr[j];arr[j] = temp;}k = j;//继续下沉}
}

合并排序

合并排序也叫归并排序,其采用分治的策略,将大问题分成若干个小问题,先解决小问题,再利用已经解决的小问题取解决大问题。总体思想就是先分后合,所谓天下之势,乃是合久必分,分久必合^ _ ^。

算法思路

  1. 将待排序列分成规模大致相同的两个子序列
  2. 递归分别对两个子序列进行合并排序
  3. 将排好的序列逐个合并
图解过程

在这里插入图片描述

下面我们来讲以下合并过程,我们举最后一次合并操作过程进行图解。

在这里插入图片描述

代码:

//归并排序
void MergeSort(elemtype arr[],int low,int high)
{if(low <high){int mid = (low+high)/2;MergeSort(arr,low,mid);MergeSort(arr,mid+1,high);Merge(arr,low,mid,high);}
}
void Merge(elemtype arr[],int low,int mid,int high)
{elemtype *save;save = (elemtype*)malloc(sizeof(elemtype)*(high-low+1));int left=low,right=mid+1,k=0;//while(left<=mid && right<=high){if(arr[left] <= arr[right]){save[k++] = arr[left++];}else{save[k++] = arr[right++];}}while(left<=mid)save[k++] = arr[left++];while(right<=high)save[k++] = arr[right++];for(int i=low,k=0;i<=high;i++,k++){arr[i]=save[k];}free(save);
}

分配排序

分配排序不需要比较数据,只是根据数据的大小,进行若干躺分配和收集实现排序。

桶排序

桶排序将待排序列划分成若干个区间,每个区间可形象地看作一个桶如果桶中的记录多于一个则使用较快的排序方法进行排序,然后再把每个桶中的记录收集起来,最终得到有序序列。

假设有10个小学生的身高{151,145,149,167,153,178,164,149*,180,172},进行桶排序,先划分区间[145-150]、(150-155]、(155-160]、(160-165]、(165-170]、(170-175]、(175-180]、(180-185]、(185-190]、(190-195]

分为10个桶,放入桶中:

在这里插入图片描述

再分别对每个桶中的数据进行排序(很巧,数据取的不好,好像都是拍好了),然后从左往右收集:

得到{145,149,149*,151,153,164,167,172,178,180}

具体代码就不讲了,因为我们着重讲桶排序的延伸,基数排序

基数排序

基数排序可以看过桶排序的扩展,它是一种多关键字排序算法,如果按照多个关键字排序,则一次按照这些关键字进行排序。例如扑克牌排序,扑克牌由数字面值和花色两跟关键字组成,可以先按照面值排序,再按照花色排序。

例如初始序列为10个学生成绩{68,75,54,70,83,48,80,12,75*,92}

算法步骤
  1. 求出待排序序列中最大关键字的位数d,然后从低位到高位进行基数排序。
  2. 按个位将关键字依次分配到桶中,然后将每个桶中的数据依次收集起来。
  3. 按十位将关键字依次分配到桶中,然后将每个桶中的数据依次收集起来。
  4. 依次下去,直到d位处理完毕,得到一个有序序列。
图解算法

在这里插入图片描述

代码:

//基数排序
int Maxbit(elemtype arr[],int n)
{int max=arr[1],digits=0;for(int i=1;i<=n;i++){if(arr[i]>max)max = arr[i];}while(max != 0){digits ++;max /= 10;}return digits;
}int Bitnumber(elemtype x,int bit)
{int temp=1;for(int i=1;i<bit;i++)temp*=10;return (x/temp)%10;
}void RadixSort(elemtype arr[],int n)
{int i,j,k,bit,maxbit;maxbit = Maxbit(arr,n);elemtype **save = (elemtype**)malloc(sizeof(elemtype*)* 10);for(i=0;i<10;i++)save[i] = (elemtype*)malloc(sizeof(elemtype)*(n+1));for(i=0;i<10;i++){save[i][0]=0;//索引0是记录当前桶中的数据个数}for(bit=1;bit<=maxbit;bit++){for(j=1;j<=n;j++)//分配{int num = Bitnumber(arr[j],bit);int index= ++save[num][0];save[num][index] = arr[j];}for(i=0,j=1;i<10;i++)//收集{for(k=1;k <= save[i][0];k++)arr[j++]=save[i][k];save[i][0] = 0;//收集完了清空个数}}for(int i = 0; i < 10; ++i)free(save[i]);free(save);
}

时间复杂度、稳定性分析:

在这里插入图片描述
Over!

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. JAVA经典算法面试40题及答案

    By Lee - Last updated: 星期日, 三月 9, 2014现在是3月份,也是每年开年企业公司招聘的高峰期,同时有许多的朋友也出来找工作。现在的招聘他们有时会给你出一套面试题或者智力测试题,也有的直接让你上机操作,写一段程序。算法的计算不乏出现,基于这个原因我自己搜集了一些…...

    2024/4/21 8:06:18
  2. iOS Charles(网络监视工具)

    Java 环境 Charles 需要Java环境,必须安装 Charles 官网 Charles 破解工具...

    2024/5/4 6:05:01
  3. 在5G、大数据、AI领域进行合作,商飞与腾讯云共推大飞机智能制造

    说到中国的大飞机制造,大家肯定会想到的一个名字:中国商飞~去年5月,中国首款国产大型商用飞机C919首飞成功,作为中国实施大型客机项目的主体,统筹干线飞机和支线飞机发展、实现我国民用飞机产业化的主要载体,商飞也一下成了“网红”。飞机制造业被誉为工业领域的皇冠,是…...

    2024/4/27 7:26:22
  4. How to add a button to PreferenceScreen

    前段时间遇到这个问题,网上 搜索了以下,得到以下答案http://stackoverflow.com/questions/2697233/how-to-add-a-button-to-preferencescreenpackage com.myapplication.gui;import android.app.AlertDialog; import android.content.Context; import android.content.Dialog…...

    2024/4/21 8:06:15
  5. creature_template

    1 entry 生物唯一编号2 modelid_A 联盟模型ID,参考creature_model_info3 modelid_A2 同上4 modelid_H 部落模型ID,参考creature_model_info5 modelid_H2 同上6 name 名称7 subname 副名字,称号8 IconName 脚本图标,守卫专用9 minlevel 最小等级10 maxlevel 最大等级11 minhea…...

    2024/4/21 8:06:14
  6. java算法篇之折半查找

    package althorgrim; /*** 1、必须采用顺序存储结果* 2、关键字必须有序* @author hanrk-2734**/ public class TestBinarySearch {public static int binarySearch(int a[],int goal){int high=a.length-1;int low=0;while (low<=high) {int middle=(low+high)/2;if (a[mid…...

    2024/5/4 0:47:54
  7. 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法

    选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 首先,排序算法的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai =…...

    2024/4/29 14:33:56
  8. 网络监控工具ntopng

    网络监控工具ntopngntopng是Kali提供的一个网络监控软件,用于显示当前网络的使用情况。它能列出当前使用网络的主机,并且显示每台主机发送和接受的数据包。同时,它提供强大的数据处理功能,它支持接口过滤和过滤器,并且提供将数据转存到Redis、SQlite和TAP接口。为了方便用…...

    2024/4/21 8:06:11
  9. android 定制PreferenceScreen

    在使用PreferenceActivity的时候,布局文件的格式一般是这样的:[html] view plaincopyprint?<PreferenceCategory android:title="@string/launch_preferences"> <!-- This PreferenceScreen tag sends the user to a new fragment of …...

    2024/4/21 8:06:11
  10. 达芬奇密码059

    丹布朗/著 朱振武 吴晟 周元晓/译 第五十九章 纽约市莱克星顿大街的天主事工会总部里,男接待员意外地接到了阿林加洛沙主教的电话,于是他问候道:“晚上好,先生。” “有我的口信吗?”主教急切地问道。 “是的,先生。很高兴您打了过来。我往您的房间里打电话,可是没人…...

    2024/4/21 8:06:09
  11. 贪心算法-java

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的…...

    2024/4/24 19:48:35
  12. iptraf:一个实用的TCP/UDP网络监控工具

    iptraf是一个基于ncurses的IP局域网监控器,用来生成包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和错误等等统计数据。它基于ncurses的用户界面可以使用户免于记忆繁琐的命令行开关。特征IP流量监控器,用来显示你的网络中的IP流量变化信息。…...

    2024/4/20 18:37:24
  13. PreferenceScreen

    PreferenceScreen可以用来实现设置界面的动态显示。 一: 在set.xml中添加列表显示,set.xml要放在layout目录下,<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_heig…...

    2024/4/20 18:37:24
  14. java的经典算法40例-全源码

    https://gitee.com/songjiangtao/resource/blob/Java经典算法源码/README.md...

    2024/4/20 18:37:23
  15. 堆排序及其优化过程总结

    引言:众所周知,堆排序算法是高级排序算法中的一种,平均时间复杂度为O(nlogn),算法思想是:先把带排序的记录构造成堆,然后通过从堆中不断选取最小/大元素,从而达到排序的目的。本文将以最大堆为例从三个点依次讨论堆排序的优化,即从基础堆排序到heapify、再到原地堆排序…...

    2024/4/27 10:06:07
  16. PreferenceScreen使用

    详解如何创建Google风格的SettingsActivity:http://www.jianshu.com/p/f5f8834ee9af...

    2024/4/21 8:06:07
  17. 十本数据结构与算法书籍推荐

    点击上方“java工会”,选择“置顶公众号”关键时刻,第一时间送达!原文地址:http://www.oschina.net/question/587367_156025学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。在这里列出一些…...

    2024/4/21 8:06:06
  18. Nagios是一款开源的电脑系统和网络监视工具

    http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html  Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢…...

    2024/4/21 8:06:06
  19. KMP算法详解与Java实现

    `在日常开发,面试中我们经常会遇到关于字符串匹配的相关问题,今天看了一下KMP算法,很有收获。写一篇心得。 举例来说,有一个字符串 Str1 = “BBC ABCDAB ABCDABCDABDE”,判断,里面是否包含另一个字符串 Str2 = “ABCDABD”? 1.首先,用Str1的第一个字符和Str2的第一个字…...

    2024/4/21 8:06:05
  20. 堆排序Java代码实现

    堆排序堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。算法描述将初始待排序关键字序列 (R1,R2….Rn) 构建成大顶堆,此堆为初始的无序区;将堆…...

    2024/4/21 8:06:04

最新文章

  1. 面试算法题精讲:最长公共子串

    面试算法题精讲&#xff1a;最长公共子串 最长公共子串问题是指给定两个字符串S1和S2&#xff0c;求它们的公共子串中最长的那一个。其实就是求两个字符串的最长重复子串。 最朴素的算法就是枚举S1和S2的每一对子串&#xff0c;然后判断它们是否相等&#xff0c;时间复杂度是…...

    2024/5/4 6:06:29
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【超简单】基于PaddleSpeech搭建个人语音听写服务

    一、【超简单】之基于PaddleSpeech搭建个人语音听写服务 1.需求分析 亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?亲们,你们要写会议纪要嘛?当您面对成吨的会议录音,着急写会议纪要而不得不愚公移山、人海战术?听的头晕眼花,听的漏洞百出,听的怀疑人生,那么你…...

    2024/5/2 17:17:32
  4. 3d representation的一些基本概念

    顶点&#xff08;Vertex&#xff09;&#xff1a;三维空间中的一个点&#xff0c;可以有多个属性&#xff0c;如位置坐标、颜色、纹理坐标和法线向量。它是构建三维几何形状的基本单元。 边&#xff08;Edge&#xff09;&#xff1a;连接两个顶点形成的直线段&#xff0c;它定…...

    2024/5/4 4:07:45
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/4 2:59:34
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57