清晨来盘开胃菜,基础算法搞起来。
来源:互联网 发布:淘宝图书许可证怎么办 编辑:程序博客网 时间:2024/04/29 19:44
经典的冒泡:
void sort(int a[],int n){
bool swapped;
do{
swapped=false;
for(int i=1;i<n;i++){
if(a[i-1]>a[i]){
swap(a[i-1],a[i]);
swapped=true;
}
}
}while(swapped);
}
//本着每趟都能把最大数找出来放到最后的原则,依次找到最大,次大,。。
插入法:
void sort(int a[],int n){
int i,j;
for(i=1;i<n;i++){
int t=a[i];
for(j=i;j>0&&j[i-1]>t;j--){
a[j]==a[j-1];
}
a[j] = t;
}
}
//从i=0开始,依次把这前i+1个数排好,本着来一个插一个的原则
选择法:
void sort(int a[],int n){
for(int i=1;i<n;i++){
int min=i-1;
int mv = a[min];
for(int j=i;j<n;j++){
if(a[j]<mv){
min = j;
mv = a[j];
}
}
a[min]=a[i-1];
a[i-1] = mv;
}
}
//从第2-n个中找到比第一个数小的最小值,进行交换
//依次,从第3-n个中找到比第二个数小的最小值,进行交换
//。。。
快排:
void sort(int a[],in n){
if(n<=1) return ;
if(n==2){
if(a[0]>a[1])
swap(a[0],a[1]);return;
}
swap(a[n/2],a[0]);
int pivot = a[0];
int *L = a+1;
int *R = a+n-1;
while(L<R){
while(L<R && *L<pivot) ++L;
while(a<R && *R>=pivot) ++R;
if(L<R) swap(*L,*R);
}
swap(a[0],*R);
sort(a,R-a);
sort(R+1,n-(R-a)-1);
}
//递归的美妙之处。
- 清晨来盘开胃菜,基础算法搞起来。
- 搞起来~
- 微信小程序搞起来!!!
- 清晨
- 清晨
- 清晨
- 清晨
- 清晨
- 半夜睡不着,MFC搞起来!
- 半夜睡不着,MFC搞起来!
- Struts2开胃菜
- 欢迎来搞````
- Kotlin搞起来——2.基础知识
- Kotlin资料积累,Kotlin搞起来
- 一年之计在于春,一日之计在于晨, 一生之计在于勤,清晨起来修手机
- 来搞一下blog了!
- 搞起CSP,一步一步来。
- 又来搞restful API
- Verilog HDL语法提纲
- java中的clone
- C# 点击鼠标右键引发的事件
- 70个jquery触摸事件插件——支持手势触摸!
- OSG::ref_ptr模板类
- 清晨来盘开胃菜,基础算法搞起来。
- amd处理器的定位
- xcode格式化利器
- 380. Soon learn, soon forgotten. 学得快,忘得快
- 图片加载前修改图片的大小
- php常见错误
- spring入门(4)---spring中Bean的生命周期总结
- 最长公共子序列
- linux 下C语言学习路线