C++三种排序,快速排序、选择排序、冒泡排序----简单代码
来源:互联网 发布:淘宝助理上传字段错误 编辑:程序博客网 时间:2024/05/21 22:28
直接把解释,就放到注解了。。。
//冒泡排序
#include<iostream>
using namespace std;
void main()
{
int n=5,count=0; //根据需要改N的值
int i,j,temp,a[5];
cout <<"input the five num:";
for(i=0;i<n;i++) cin>>a[i]; //输入数据
for(j=0;j<n;j++)
{
for(i=0;i<n-j;i++) //每一次都沉淀至少一个元素,所有i要小于n-j
{
if(a[i]>a[i+1]) //前后两个值的比较
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;//这三行,不解释了
}
count++;//统计次数
}
}
for(i=0;i<n;i++)
cout <<a[i]<<" ";
cout<<"counter:"<<count;
cout<<"\n";
}
//时间复杂度我计算的是n*(n+1)/2;这个是个人计算,不做参考,书上给的是n^2
//选择排序
#include<iostream>
using namespace std;
void main()
{
int n=5,count=0;
int i,j,temp,a[5];
cout <<"input the five num:";
for(i=0;i<n;i++) cin>>a[i];
for(i=0;i<n;i++)
{ int min=a[i];
for(j=i+1;j<n;j++)//当i确定时候,j要从i+1开始
{
if(a[i]>a[j])//比较a[i],a[j]的值,找出比较小的,最后放前面
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
count++;
}
}
for(i=0;i<n;i++)
cout <<a[i]<<" ";
cout<<"counter:"<<count;
cout<<"\n";
}
时间复杂度为n*(n-1)/2
//快速排序
#include<iostream>
using namespace std;
void qsort(int array[],int l,int r)
{
int i,j,k;
if(l<r) //这是前提
{
i=l;j=r;k=array[i];
do{
while((i<j)&&(array[j]>=k))//如果条件满足,则进行j--,右边下标,向左移一位
j--;
if(i<j)
{
array[i]=array[j]; //如果条件不满足,则说明此处值比K要小,要互换两处的数值
}
while((i<j)&&(array[i]<=k))
i++;
if(i<j)
{
array[j]=array[i];
}
}while(i!=j); //只是进行一次快速查找
array[i]=k;
qsort(array,l,i-1); //递归算法,分别进行中轴左边和右边的算法
qsort(array,i+1,r);
}
}
void main()
{
int n=5;
int i,j,temp,a[5];
cout <<"input the five num:";
for(i=0;i<n;i++) cin>>a[i];
qsort(a,0,n-1);//调用函数了
for(i=0;i<n;i++)
cout <<a[i]<<" ";
cout<<"\n";
}
其实,我也是昨天和今天狂加班才搞明白,这些算法,杯具的是,明天就要参加绿盟的WEB应用开发实习生的面试。。。祈祷!!!
- C++三种排序,快速排序、选择排序、冒泡排序----简单代码
- 冒泡排序,快速排序,简单选择排序
- 简单选择排序&冒泡排序&快速排序
- 冒泡排序、快速排序、选择排序、插入排序、shell排序C代码
- C语言常用的几种排序算法代码(选择排序,冒泡排序,插入排序,快速排序)
- C语言程序----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
- 【排序】快速排序 冒泡排序 选择排序
- 排序-冒泡,快速(选择排序)
- 排序学习(直接插入排序,折半插入排序,冒泡排序,快速排序,简单选择排序)
- 【C语言】冒泡排序,选择排序,快速排序
- 冒泡排序 选择排序 快速排序(C语言)
- C——冒泡排序、快速排序,选择排序
- C语言分别实现冒泡排序、快速排序、选择排序
- 冒泡排序,选择排序,快速排序
- 冒泡排序,选择排序,快速排序
- 冒泡排序,选择排序,快速排序
- 冒泡排序,快速排序,选择排序
- 冒泡排序,选择排序,快速排序
- js编程开发宝典(项目常用函数)
- GtkTreeView
- 遗传的效应,美貌与智慧奇妙的遗传
- Linux select()详解
- 【JS--DOM-节点操作3】-jQuery 里的节点操作 (未完待续)
- C++三种排序,快速排序、选择排序、冒泡排序----简单代码
- 12个问题问自己:生活如何才能变简单?
- JavaScript 获取、设置标签属性值 http://ajian759447583.iteye.com/blog/1540129
- linux中LCD设备驱动(5)——基于s3c6410平台
- android之Binder机制解析
- 电影中艺术的好与差
- win7创建ftp服务器及FlashFxp的使用
- 【C++ STL】细数C++ STL 的那些事---set(元素唯一,且排序)
- 用JS创建一个XML文件