排序
Zero-place
在校大学生正在追赶互联网大潮!
展开
-
排序的疑惑
内部排序大致有: -插入式排序:直接插入排序,希尔排序 -交换式排序:气泡法、快速排序法 -选择式排序:直接选择排序、锦标赛排序、堆排序 -归并排序 -基数排序 什么叫排序算法的稳定性? 如果排序算法,不会改变相同排序码的数据元素的前后次序。该算法称为稳定的排序算法。否则该算法就是不稳定的。 如:1 3 5 5' 排序后变为 1 3 5' 5 称为不稳定。 什么叫内部排序,外部排序? 内部排序...原创 2019-04-03 21:12:57 · 120 阅读 · 0 评论 -
图解:2-路归并排序(递归实现 )
划分过程: //划分过程 void mergeSort(int A[],int left,int right){ void merge(int A[],int L1,int R1,int L2,int R2); //声明 if(left<right){ int mid=(left+right)/2; mergeSort(A,left,mid); mergeSort(...原创 2019-04-02 13:16:13 · 1619 阅读 · 0 评论 -
2-路归并排序(非递归)
此篇只说此方法排序的难点和易错点。 #include <stdio.h> //合并过程 int maxn=1000; void merge(int A[],int L1,int R1,int L2,int R2){ int i=L1,j=L2; //临时数组 int temp[maxn], index=0; while(i<=R1&&j<...原创 2019-04-02 22:13:39 · 489 阅读 · 1 评论 -
快速排序时间复杂度和不稳定性
这里提供讲得超级清楚明白的视频!!!力荐排序视频(这个都还看不懂就别学了) 提供源代码,然后这里只讨论快速排序不稳定性和时间复杂度的问题。 源代码: #include <stdio.h> //划分 int Partition(int a[],int Left,int Right){ int L=Left; int H=Right; int temp=a[L]; //临时...原创 2019-04-03 19:41:46 · 967 阅读 · 0 评论 -
插入排序
思路:temp保存才插进来的数字,因为当该数字比前一个数小时,前一个数就直接覆盖掉了才插进来的数。 #include <stdio.h> int main(){ int a[5]={1,10,5,3,8}; for(int i=1;i<5;i++){ int temp=a[i],j=i; while(temp<a[j-1]&&j>0)...原创 2019-03-23 16:01:00 · 99 阅读 · 0 评论 -
希尔排序
希尔排序也是基于插入排序的一种策略,两个代码相似 插入排序: #include <stdio.h> int main(){ int a[]={1,10,5,3,8,0}; for(int i=1;i<6;i++){ int temp=a[i],j=i; while(j>=1&&temp<a[j-1]){ a[j]=a[j-1];...原创 2019-04-14 09:17:30 · 130 阅读 · 0 评论