排序算法
来源:互联网 发布:内存中存放的是数据 编辑:程序博客网 时间:2024/05/16 00:28
快速排序:
从一组数种选取一个主元,从后向前把比主元小的换到前面,从前向后把比主元大的换到后面,然后前后两个部分重复此操作。
void Qsort
(int a[],int low,int high)
{
if(low>=high) return;
int first=low;
int last=high;
int key=a[low];/*用字表的第一个记录作为枢轴*/
while(first<last) {
while(first<last&&a[last]>=key) --last;
a[first]=a[last];/*将比第一个小的移到低端*/
while(first<last&&a[first]<=key) ++first;
a[last]=a[first];/*将比第一个大的移到高端*/
}
a[first]=key;/*枢轴记录到位*/
Qsort(a,low,first-1);
Qsort(a,first+1,high);
}
归并排序:
把一个数组等分两部分,把两部分排好序后再合并。
void MergeSort(int sourceArr[],int tempArr[],int startIndex,int endIndex)
{
int midIndex;
if(startIndex<endIndex)
{
midIndex=(startIndex+endIndex)/2;
MergeSort(sourceArr,tempArr,startIndex,midIndex);
MergeSort(sourceArr,tempArr,midIndex+1,endIndex);
Merge(sourceArr,tempArr,startIndex,midIndex,endIndex);
}
}
从一组数种选取一个主元,从后向前把比主元小的换到前面,从前向后把比主元大的换到后面,然后前后两个部分重复此操作。
void Qsort
(int a[],int low,int high)
{
if(low>=high) return;
int first=low;
int last=high;
int key=a[low];/*用字表的第一个记录作为枢轴*/
while(first<last) {
while(first<last&&a[last]>=key) --last;
a[first]=a[last];/*将比第一个小的移到低端*/
while(first<last&&a[first]<=key) ++first;
a[last]=a[first];/*将比第一个大的移到高端*/
}
a[first]=key;/*枢轴记录到位*/
Qsort(a,low,first-1);
Qsort(a,first+1,high);
}
归并排序:
把一个数组等分两部分,把两部分排好序后再合并。
void MergeSort(int sourceArr[],int tempArr[],int startIndex,int endIndex)
{
int midIndex;
if(startIndex<endIndex)
{
midIndex=(startIndex+endIndex)/2;
MergeSort(sourceArr,tempArr,startIndex,midIndex);
MergeSort(sourceArr,tempArr,midIndex+1,endIndex);
Merge(sourceArr,tempArr,startIndex,midIndex,endIndex);
}
}
0 0
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 排序算法
- 纯CSS3画的云朵
- 关于C99中的新特性:指定初始化 Designated initializers
- It looks like git-am is in progress. Cannot rebase.
- 彼岸
- MATLAB制作动画视频
- 排序算法
- JAVA初级开发
- 删除单链表的倒数第k个结点
- FOUNDATION_EXPORT 或#define 或 extern
- javascript高级程序设计之逻辑与和逻辑或
- test
- 浅谈SQL Server中的三种物理连接操作(HASH JOIN MERGE JOIN NESTED LOOP)
- 天国王朝经典台词
- C++ 顺序容器的操作(1)size_type、iterator、const_iterator、difference_type