入门级排序算法
来源:互联网 发布:网络手游排行榜2015 编辑:程序博客网 时间:2024/05/28 05:14
选择排序:
void SelectionSort(int array[], int len) // O(n*n)
{
int i = 0;
int j = 0;
int k = -1;//k用于标识最小值位置
for(i=0; i<len; i++)//比较i趟,核心步骤
{
k = i;
for(j=i; j<len; j++)//通过for循环查找最小值
{
if( array[j] < array[k] )
{
k = j;
}
}
swap(array, i, k);//找到最小值后,放到i位置上
}
}
插入排序:
void InsertionSort(int array[], int len) // O(n*n)//比较次数相对于选择排序少一点,平均复杂度低一点
{
int i = 0;
int j = 0;
int k = -1;
int temp = -1;
for(i=1; i<len; i++)//从第一个元素开始,第零个元素作为初始序列
{
k = i;
temp = array[k];//目前待插入的元素
for(j=i-1; (j>=0) && (array[j]>temp); j--)//在有序序列中查找应插入的位置,任意一个元素都可以作为有序序列
{
array[j+1] = array[j];//向后移动
k = j;//应插入的位置
}
array[k] = temp;
}
}
冒泡排序:
void BubbleSort(int array[], int len) // O(n*n)
{
int i = 0;
int j = 0;
int exchange = 1;//标记变量exchange,貌似可要可不要
for(i=0; (i<len) && exchange; i++)//进行了交换才能继续,否则可以结束了
{
exchange = 0;
for(j=len-1; j>i; j--)//开始冒泡了
{
if( array[j] < array[j-1] )
{
swap(array, j, j-1);
exchange = 1;
}
}
}
}
- 入门级排序算法
- 算法入门--插入排序
- 算法入门-选择排序
- 算法入门--计数排序
- 入门机排序算法
- Sorting入门排序算法
- [算法入门]排序算法之堆排序
- 算法入门之插入排序
- 算法入门--快速排序1
- 算法入门之正整数排序
- 算法入门之冒泡排序
- 算法入门之选择排序
- 算法入门之插入排序
- 算法入门之希尔排序
- 算法入门之快速排序
- Java排序算法:入门篇
- Java入门之排序算法
- 入门算法之冒泡排序
- 网页学习——网页基础学习(一)
- 软件设计是怎样炼成的(1)——什么是优秀的设计?
- 53 Java 抽象类和抽象方法
- vs2010生成Dll文件并引用dll(C#)
- Temp
- 入门级排序算法
- CodeBlocks+wxWidgets安装和配置
- 给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有多少种表示法。
- RandomAccessFile的总结
- vs2010创建和使用动态链接库(dll)
- IOS学习笔记37——ViewController生命周期详解
- RedHat 7.0 beta release notes总结及个人分析
- 自动机编程
- Java单例模式