博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
各种排序方法
阅读量:6375 次
发布时间:2019-06-23

本文共 2078 字,大约阅读时间需要 6 分钟。

前一阵子为了准备暑期实习笔试、面试,把维基上查到的常用的排序算法全写了一遍。基本是按照算法导论和维基上面的思路写的,有些算法的细节可能和一些书上有出入,但是思想是一样的。cpp文件在最后,代码如下:

#include
#include
#include
#include
#include
using namespace std;#define SIZE 1000#define MIN -65536#define rm(x) (x>>1)#define lm(x) (x<<1)//二分查找int bi_search(int arr[],int value,int start,int end){ if(start==end){ if(arr[start]!=value) return -1; else return start; } if(start>end) return -1; else{ if(arr[(start+end)/2]==value) return (start+end)/2; else if(arr[(start+end)/2]
i;j--){ if(arr[j]
=0;j--){ if(temp
=0;j--){ if(arr[j+1]
=arr[j]&&j!=size)||i==size/2) temp[k++]=arr[j++]; } for(i=0;i
queue[10]; for(i=0;i
1;k--) id/=10; id%=10; queue[id].push_back(arr[j]); } for(j=0,k=0;j<10;j++){ while(queue[j].size()!=0){ arr[k++]=queue[j].front(); queue[j].pop_front(); } } }};//选择排序,不稳定void select_sort(int arr[],int size){ int i,j,min,value; for(i=0;i
=1;i--) max_heapify(heap,i,size);};void heap_sort(int heap[],int size){ build_max_heap(heap,size); for(int i=size;i>=2;i--){ int temp=heap[1]; heap[1]=heap[i]; heap[i]=temp; size--; max_heapify(heap,1,size); }};//希尔排序,插入排序的加强版void insert(int arr[],int size,int step){ int i,j,temp; for(i=step;i
=0;j-=step){ if(temp
0){ insert(arr,size,step); step/=2; }};void partition(int arr[],int end){ if(end<=0) return; int pivot=arr[end],left=-1,right=-1; for(int i=0;i
pivot) right++; else{ left++; right++; int temp=arr[right]; arr[right]=arr[left]; arr[left]=temp; } } arr[end]=arr[left+1]; arr[left+1]=pivot; partition(arr,left); partition(arr+left+2,end-left-2);};void quick_sort(int arr[],int size){ partition(arr,size-1);};int main(){ int arr[SIZE],i=0,size,value=10; while(scanf("%d",&arr[i++])!=EOF){} size=i-1; //int result=bi_search(arr,value,0,size-1); //printf("%d\n",result); //buble_sort(arr,size); //insert_sort(arr,size); //merge_sort(arr,size); //radix_sort(arr,size); //select_sort(arr,size); //bucket_sort(arr,size); //heap_sort(arr,size);//从下标1开始 //shell_sort(arr,size); //quick_sort(arr,size); return 0;}

  

转载地址:http://fztqa.baihongyu.com/

你可能感兴趣的文章
右键添加复制路径选项
查看>>
DocFetcher 本机文件搜索工具
查看>>
ambassador 学习三 限速处理
查看>>
HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
查看>>
家里蹲大学数学杂志期刊模式目录
查看>>
数据结构:最小生成树--Kruskal算法
查看>>
Swift_1_基本数据类型
查看>>
POJ 1849 Two(遍历树)
查看>>
Recurrent Neural Network[CTC]
查看>>
VS注释与取消注释快捷键
查看>>
深入解析Vuex实战总结
查看>>
.NET编译项目时出现《此实现不是 Windows 平台 FIPS 验证的加密算法的一部分》处理方法...
查看>>
流水落花春去也
查看>>
从.NET中委托写法的演变谈开去(下):性能相关
查看>>
C# 多人聊天程序
查看>>
【教训】为什么不作备份?!
查看>>
网搜索引擎架构设计
查看>>
iOS笔记:内存管理
查看>>
python开发_python中str.format()
查看>>
HTML5, CSS3, ES5新的web标准和浏览器支持一览 转
查看>>