部分排序,记录,方便用~
来源:互联网 发布:照片日历制作软件 编辑:程序博客网 时间:2024/04/28 13:01
插入排序
#include<iostream>
#include <stdio.h>#include <stdlib.h>
#include <string.h>
/*left,right,root,middle*/
using namespace std;
int a[100];
void insertsort(int a[],int n)
{
int i, j;
int target;
for (i = 1; i < n; i++)
{
j = i;
target = a[i];
while (j > 0 && target < a[j - 1])
{
a[j] = a[j - 1];
j--;
}
a[j] = target;
}
}
int main(){
int n;
cin>>n;
for(int i = 0;i < n; i++)
cin>>a[i];
insertsort(a,n);
for(int i = 0;i < n; i++)
cout<<a[i]<<" ";
cout<<endl;
}
归并排序
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*left,right,root,middle*/
using namespace std;
int a[100];
int tem[100];
void he(int l,int mid, int r){
int i = l,j = mid+1, k = 0;
while(i<=mid&&j<=r){
if(a[i]<a[j])
tem[k++] = a[i++];
else tem[k++] = a[j++];
}
while(i<=mid)tem[k++] = a[i++];
while(j<=r)tem[k++] = a[j++];
for(i = 0;i < k;i++)
a[l+i] = tem[i];
}
void mergesort(int l ,int r){
if(l<r){
int mid = (l+r)/2;
mergesort(l,mid);
mergesort(mid+1,r);
he(l,mid,r);
}
}
int main(){
int n;
while(cin>>n){
for(int i = 0;i < n; i++)
cin>>a[i];
mergesort(0,n-1);
for(int i = 0;i < n; i++)
cout<<a[i]<<" ";
cout<<endl;
}
}
快速排序
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*left,right,root,middle*/
using namespace std;
int a[100],t;
void quicksort(int l,int r){
if(l>r)return;
int tem = a[l];
int i = l,j = r;
while(i!=j){
while(a[j]>=tem&&i<j)j--;
while(a[i]<=tem&&i<j)i++;
if(i<j){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
a[l] = a[i];
a[i] = tem;
quicksort(l,i-1);
quicksort(i+1,r);
}
int main(){
int n;
cin>>n;
for(int i = 0;i < n; i++)
cin>>a[i];
quicksort(0,n-1);
for(int i = 0;i < n; i++)
cout<<a[i]<<" ";
cout<<endl;
}
堆排序
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*left,right,root,middle*/
using namespace std;
int h[101],n;
void swap(int x,int y){
int t;
t = h[x];
h[x] = h[y];
h[y] = t;
}
void siftdown(int i){
int t,flag = 0;
while(i*2<=n&&flag == 0){
if(h[i]<h[i*2])
t = i*2;
else t = i;
if(i*2+1 <= n){
if(h[t]<h[i*2+1])
t = i*2+1;
}
if(t!=i){
swap(t,i);
i = t;
}
else flag = 1;
}
}
void creat(){
int i;
for(i = n/2;i >= 1;i--){
siftdown(i);
}
}
void heapsort(){
while(n>1){
swap(1,n);
n--;
siftdown(1);
}
}
int main(){
int i,num;
scanf("%d",&num);
for(i = 1;i <= num ;i ++)
cin>>h[i];
n=num;
creat();
heapsort();
for(i = 1;i <= num; i++)
printf("%d ",h[i]);
}
- 部分排序,记录,方便用~
- 方便记录
- mplayer移植记录(方便自己用)
- 用dataview排序筛选很方便
- 记录下代码,方便自己,方便他人
- IntelliJ Idea 自己用着方便的快捷键(记录)
- git 用法记录,方便以后
- 部分排序
- 部分排序
- 冒泡排序方便理解记忆
- 整理部分JS 控件 WEB前端常用的做成Jsp项目,方便今后直接用
- 首字母排序这样排序很方便
- Elmah .net 最方便最好用的日志,异常记录插件
- 记录一下透明度对应的值,方便以后用省的还需要计算
- 做好记录---为了以后可以方便查询
- Dictionary一些简易用法记录,方便…
- cvc个人记录[为了方便以后查看]
- android -- 做个记录,以后方便回顾
- python_urllib2下载网页的三种方式
- face URL
- JavaScript操作Cookie——基础篇
- 递归函数(FIBNACCI函数)
- 第五周 三角形类 3
- 部分排序,记录,方便用~
- Linux查看CPU信息、机器型号等硬件信息
- ARP介绍
- 第五周三角形4
- 第五周项目3 时间类的练习(1)
- ubuntu下执行.py文件
- wav文件格式分析详解和解析代码
- ubuntu下通过unixODBC连接MS SqlServer2005
- 第五周 三角形5