各种排序算法的复习
2013-04-06 12:26
337 查看
内容不深,全是数据结构书上的,需要更深入了解的请参阅算法导论。
希望今天能把这个知识点复习完。Doing!
排序算法总结
一、内部排序算法
(一)插入排序
(二)交换排序
④起泡排序
时间复杂度:空间复杂度:
程序:
结果:
⑤快速排序
程序:
(三)选择排序
(四)归并排序
(五)基数排序
二、外部排序算法
希望今天能把这个知识点复习完。Doing!
排序算法总结
一、内部排序算法
(一)插入排序
(二)交换排序
④起泡排序
时间复杂度:空间复杂度:
程序:
#include <iostream> using namespace std; void vBubbleSort(int* a,int num) { int i=0,j=0; for(;i<num-1;i++) { int flag=false; for(j=i+1;j<num;j++) if(a[i]<a[j]) { flag=true;//flag=true表示这一趟交换过数据 //不用临时变量交换两个数 a[i]=a[i]^a[j]; a[j]=a[j]^a[i]; a[i]=a[j]^a[i]; } if(flag==false) return; } } int main() { int a[10]={1,6,7,2,3,4,5,8,9,10},i=0; vBubbleSort(a,10);//注意不能用a=pBubbleSort(a,10);因为a是常量,不能被第二次赋值。 for(;i<10;i++) { cout<<"a["<<i<<"]="<<a[i]<<" "; } cout<<endl; return 1; }
结果:
⑤快速排序
程序:
#include <iostream> using namespace std; int iPartition(int* a,int low,int high) { int pivotkey=a[low]; while(low<high) { while(low<high && a[high]>=pivotkey) --high; a[low]=a[high]; while(low<high && a[low]<=pivotkey) ++low; a[high]=a[low]; } a[low]=pivotkey; return low; } void vQuickSort(int* a,int low,int high) { int pivotloc=0; static int j=1; if(low<high) { pivotloc=iPartition(a,low,high); cout<<"第"<<j++<<"趟快排:"<<endl; for(int i=0;i<8;i++) { if(i==pivotloc) cout<<"mark:"; cout<<"a["<<i<<"]="<<a[i]<<" "; } cout<<endl; vQuickSort(a,low,pivotloc-1); vQuickSort(a,pivotloc+1,high); } } int main() { int a[8]={49,38,65,97,76,13,27,49}; vQuickSort(a,0,7); return 1; }结果:
(三)选择排序
(四)归并排序
(五)基数排序
二、外部排序算法
相关文章推荐
- 各种常见排序算法(复习)
- 各种排序(数据结构复习之内部排序算法总结)
- 复习数据结构:排序算法(五)——快速排序的各种版本
- 各种排序算法(冒泡、选择、快排、插入、希尔、堆排、归并、计数、基数)
- 各种排序算法总结
- 各种排序算法的分析及java实现(二)
- 各种排序算法java实现,好文,做个备份
- C语言版常见的各种排序算法(…
- 各种常规排序算法总结
- c++各种排序算法(更新中)
- 各种排序算法
- 常用的各种排序算法的JAVA实现
- 各种排序算法总结
- 简单评价各种排序算法的优劣
- 各种排序算法
- 各种排序算法总结
- 各种排序算法java实现
- 数据结构各种排序算法总结
- 各种排序算法的实现,总结与比较
- 各种排序算法的实现-3(2路插入排序)