摘要:
冒泡排序(升序)时间复杂度分析 原理:通过从前往后遍历两两对比, 当前一个数大于后一个数,则交换位置, 最大的数可以遍历到最右侧 不断从后缩小数组范围(end--),当end到第一个元素时停止 void Swap(int*a,int *b){ int tmp=*b; *b=*a; *a=tmp; } 阅读全文
摘要:
快速排序-V1 一、代码实现 1.大致思路 假如有一个数,这个数组自然有序 假如有2个数,我们选第一个数为标准,比它小的数排它前面,比它大排后面,那么这两个数将有序。 假如有3个数,我们选第一个数为标准,比它小的数排它前面,比它大排后面。 假如有4个数,我们选第一个数为标准,比它小的数排它前面,比它 阅读全文
摘要:
归并排序分析 一、代码实现 void merge(int*a,int low,int mid,int high){ int *b = new int [high-low+1]; int i=low,j=mid+1,k=0; while (i<=mid&&j<=high){ if(a[i]<a[j]) 阅读全文
摘要:
Shell排序复杂度分析 1.大致思想 可以把希尔排序看作是发牌员,给每人轮流发一张牌。需要给n个人发牌,每人从第二张开始分别进行插入排序,那么第一轮下来后, 每人的牌就是有序的。接下来按照刚刚的发牌顺序把牌再收起来,减少人数,不断重复这个步骤,直到只剩下一个人,那么就是直接 插入排序。 希尔排序可 阅读全文