C/C++软件工程师就业求职手册学习笔记---第十一章
2014-04-03 14:48
429 查看
第十一章
1、插入排序
2、shell排序
3、冒泡排序
4、快速排序
5、直接选择排序
6、堆排序
---------------------------第十一章结束-----------------------------------------
1、插入排序
void InsertSort(int a[],int length) { for(int i=1;i<length;i++) { int key=a[i]; for(int j=i-1;j>=0;j--) { if(a[j]>key) { a[j+1]=a[j]; } } a[j+1]=key; } }
2、shell排序
void shell(int a[],int length) { int i,j,key; for(int h=length/2;h>0;h=h/2) { for(i=h;i<length;i++) { key=a[i]; for(j=i-h;j>=0&&a[j]>key;j=j-h) { a[j+h]=a[j]; } a[j+h]=key; } } }
3、冒泡排序
void bubble(int a[],int length) { int i,j,temp,exchange=0; for(i=0;i<length;i++) { for(j=0;j<length-i-1;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; exchange=1; } } if(exchange!=1) return; } }
4、快速排序
void QuickSort(int a[],int start,int end) { int i=start,j=end; int key=a[start]; if(start<end) { while(i<j) { while(j>i&& a[j]>key) --j; if(j>i) a[i++]=a[j]; while(i<j&& a[i]<key) ++i; if(i<j) a[j--]=a[i]; } a[i]=key; QuickSort(a,start,i-1); QuickSort(a,i+1,end); } }
5、直接选择排序
void SelectOrder(int a[],int length) { int i,j,tmp,l; for(i=0;i<length;i++) { tmp=a[i]; for(j=i+1;j<length;j++) { if(a[j]<tmp) { tmp=a[j]; l=j; } } a[i]=tmp; a[l]=a[i]; } }
6、堆排序
void MaxHeap(int a[],int length) { if(length>0) { int i,largest,left,right,tmp; for(i=length/2;i>=0;i--) { largest=i; left=i*2+1; right=i*2+2; if(left<length) { if(a[i]>a[left]) largest=i; else largest=left; } if(right<length) { if(a[right]>a[largest]) largest=right; } if(largest!=i) { tmp=a[i]; a[i]=a[largest]; a[largest]=tmp; } } tmp=a[0]; a[0]=a[length-1]; a[length-1]=tmp; int ii=0; while(ii<length) cout<<a[ii++]<<endl; MaxHeap(a,length-1); } }
---------------------------第十一章结束-----------------------------------------
相关文章推荐
- malloc、realloc和calloc的区别
- C/C++软件工程师就业求职手册学习笔记---第十章
- C/C++软件工程师就业求职手册学习笔记---第九章
- C/C++软件工程师就业求职手册学习笔记---第八章
- C/C++软件工程师就业求职手册学习笔记---第七章
- C++位运算
- C++游戏开发需要阅读的书籍
- C++ stdafx的作用
- 学习C++知识点,绝对的通俗易懂,作为备忘录的最佳选择
- C_C++软件工程师就业求职手册学习笔记---第六章
- LeetCode 33 — Search in Rotated Sorted Array(C++ Java Python)
- C/C++软件工程师就业求职手册学习笔记---第五章
- C_C++软件工程师就业求职手册学习笔记---第四章
- C++实现将一个字符串转化为double类型
- 数组名和指针的区别
- Visual C++ 6.0使用教程
- 如何在C语言中scanf格式化输入字符
- 2.C++中的引用
- C++中动态定义一维数组,二维数组,三维数组
- C++文件流