首页 > 代码库 > 说一说,最基础的三个排序
说一说,最基础的三个排序
为什么突然想要写着最简单的三个排序呢?
第一个原因是 前两天在北科大的研究所里面居然把选择排序写错了(煞是丢人!)
二是 好久没有温习过了 借此机会温习一下 也给自己的博客开个篇
因为 一上来 就整写bigger 太高的 真心觉得现在的自己 有些hold不住
所以 来吧
首先 排序嘛 需要一个 数组序列 {a1,a2,a3,...,an}
我们让它来满足 从小到大的排列
这里先要来介绍一下 冒泡排序 插入排序 跟 选择排序 他们在空间复杂度上 都是一样的 全部都是 O(n^2) 其次对于少量元素的排序,他们是很有效的算法
比如说 来为 混乱的扑克牌 来排序 这三种方式 我们都是i可以使用的 且 时间上是差不多的
1.冒泡排序(顺便说一下 因为 不想 再在.net混了 所以 代码几乎 采用 c/c++)
main()
{
int [] A={7,5,8,1,4,9,6,4};
for(int i=0;i<A.length;i++)
{
for(int j=0;j<A.length;j++)
{
if(A[i]>A[j])
{
int temp=A[j];
A[j]=A[i];
A[i]=temp;
}
}
}
}
这就是一个冒泡排序
2.选择排序
main()
{
int [] A={5,6,8,1,2,4,9};
for(int i=0;i<A.length;i++)
{
int min=A[i];
for(int j=i+1;j<A.length;j++)
{
if(A[j]<A[i])
min=a[j];
}
int temp=A[j];
A[j]=A[i];
A[i]=temp;
}
}
3.插入排序
main()
{
int []a={9,5,8,1,4,6};
for(int i=1;i<a.length;i++)
{
int temp=a[i];
for(int j=i;j<0&&temp<a[j-1];j--)
{
a[j]=a[j-1];
}
a[j]=temp;
}
}
说一说,最基础的三个排序