常见排序方法(冒泡排序、选择排序、插入排序、希尔排序和快速排序)
来源:互联网 发布:孤岛危机3优化怎么样 编辑:程序博客网 时间:2024/05/17 03:24
程序:
#include <iostream>#include <string>#include <windows.h>using namespace std;int main(){void bubblesort(int*,int);void directinsert(int*,int);void secletsort(int*,int);void quicksort(int*,int,int);void shellsort(int*,int,int*,int);int a[10] = {0,8,6,4,2,1,3,5,7,9};int incrmnts[3] = {1,3,5};cout << "the initial array is: ";for(int i=0;i<10;i++){cout << a[i] << " ";}cout << endl;//bubblesort(a,10);//directinsert(a,10);//secletsort(a,10);quicksort(a,0,9);//shellsort(a,10,incrmnts,3);cout << "the sorted array is: ";for(int i=0;i<10;i++){cout << a[i] << " ";}system("pause");//按任意键继续...return 0;}//冒泡排序void bubblesort(int* a,int N){for(int i=1;i<N;i++){for(int j=0;j<N-i;j++){if(a[j]>a[j+1]){int temp = a[j+1];a[j+1] = a[j];a[j] = temp;}}}}//直接插入排序void directinsert(int* a,int N){int i,inserta,j;if(N<=1) return;for(i=0;i<N-1;i++){inserta = a[i+1];j=i;while(a[j]>inserta && j>=0){a[j+1] = a[j];j--;}a[j+1] = inserta;}}//选择排序void secletsort(int* a,int N){int i,j,k,min;for(i=0;i<N-1;i++){min = a[i],k=i;for(j=i+1;j<N;j++){if(a[j]<min) {min = a[j];k = j;}}int temp = a[i];a[i] = min;a[k] = temp;}}//快速排序void quicksort(int* a,int lowerbound,int upperbound){if(lowerbound>=upperbound) return;//以下为分左右两组程序int mid;int low = lowerbound;int up = upperbound;int target = a[lowerbound];while(low<up){while((a[low]<=target)&&(low<upperbound))low++;while((a[up]>target)&&(up>lowerbound))up--;if(low<up){int temp = a[low];a[low] = a[up];a[up] = temp;}}a[lowerbound] = a[up];a[up] = target;mid = up;//以上为分左右两组程序quicksort(a,lowerbound,mid-1);quicksort(a,mid+1,upperbound);}//Shell排序void shellsort(int* a,int N,int* stepset,int stepsetnum){int step,i,j,k,inserta;for(k=stepsetnum-1;k>=0;k--){step = stepset[k];for(i=step;i<N;i++){inserta = a[i];j = i-step;while(j>=0 && a[j]>inserta){a[j+step] = a[j];j -= step;}a[j+step] = inserta;}}}
0 0
- 常见排序方法(冒泡排序、选择排序、插入排序、希尔排序和快速排序)
- 常见排序集合(冒泡排序,选择排序,直接插入排序,二分插入排序,快速排序,希尔排序,归并排序)
- 各种常见的排序,冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,基数排序,桶排序
- C#冒泡排序、选择排序、插入排序和希尔排序
- 常用的排序算法:插入排序,希尔排序,冒泡排序,选择排序,快速排序,归并排序
- C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
- 冒泡排序 快速排序 选择排序 堆排序 直接插入排序 希尔排序 归并排序
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序
- 冒泡排序,插入排序,快速排序,归并排序,堆排序,选择排序,希尔排序
- 冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序六大排序大总结
- Python 排序 冒泡排序 希尔排序 快速排序 插入排序 选择排序 归并排序
- IOS- 快速排序,冒泡排序,直接插入排序和折半插入排序,希尔排序,堆排序,直接选择排序
- 排序总结JS版(冒泡排序、简单选择排序、快速插入排序、希尔排序、堆排序、快速排序)
- 插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序
- 【排序】冒泡排序、选择排序、插入排序、希尔排序
- C++各种常见排序算法 冒泡排序,插入排序,快排序,选择排序,希尔排序
- 冒泡排序、选择排序、快速排序、插入排序(希尔排序)、堆排序(十大排序)
- 高级电脑操作就是拒绝不确定性--window运行命令大全
- 在主机Ubuntu12.04 上 安装VirtualBox,在VirtualBox上安装 12.04
- 静态库和共享库制作
- SQL Server 查询处理中的各个阶段(SQL执行顺序)
- "大"话"小"结(1)——如何学习设计模式
- 常见排序方法(冒泡排序、选择排序、插入排序、希尔排序和快速排序)
- 接口继承与实现继承
- 从算法的角度去考虑处理海量数据——海量数据处理算法总结
- 使用NSURLProtocol实现UIWebView的离线缓存
- 移植OpenCV-2.4.5编译成功
- openstack入门学习全进程
- UVa1237 - Expert Enough?(枚举)
- cuda glsl opengl 等等之间的关系
- 图解:如何利用win7旗舰版自带的IIS来搭建FTP