所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。
在程序设计中,交换排序是基本排序方法的一种,下面是用C++语言实现的一个交换排序函数:
#include <iostream>
using namespace std;
static void SwapSort(int *a, int length)
{
for (int i = 0; i < length - 1; i++)
{
for (int j = i + 1; j < length; j++)
{
if (a[i] > a[j])
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
void main()
{
int a[10] = {1, 4, 2, 3, 8, 9, 7, 6, 5, 0};
SwapSort(a, 10);
for(int i = 0; i < 10; i++)
{
cout << a[i];
}
cout<<endl;
}
// Output:
/*
0123456789
*/
平均时间复杂度:O(n2)
分享到:
相关推荐
经典的数据结构 交换排序算法 非常实用 可以给初学者使用 也可以作为工具提供给编程人员
本文件是7种常用排序算法的实现(C++),包括冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序以及快速排序。代码详细有注释且有测试用例。
利用C++实现了常用的排序算法,包括:冒泡排序、插入排序、选择排序、归并排序、快速排序、0-交换排序。利用简单的数字序列排序为例,希望能帮助对以上算法有更深理解。
包含了所有主要排序算法: 1 插入类——插入排序(链接法,普通数组法,二分插入法)、希尔排序 2 选择类——直接选择排序、堆排序 3 分配类——基数排序 4 交换类——冒泡排序、快速排序 5 归并排序
五种内部排序算法性能比较, 1.直接插入排序算法。 2.简单选择排序。 3.希尔排序。 4.归并排序。5.快速排序。分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。给出十万到百万级数据量的统计结果...
讲解了交换类排序的含义,并有代表:冒泡排序和快速排序的算法实现和讲解,和复杂度分析。
冒泡排序,插入排序, 交换排序,高级排序,其中前三个为基本排序方法,第四个算法有点想法
算法实现:对n个数据进行n-1次排序,每次从剩余元素的第一个开始进行相邻元素交换比较,实现由小到大的排序。 2.选择排序原理:通过多次关键码的比较,使得在每一趟排序中第一位最小。 算法实现:对n个数据,比较n...
用c++写的快速排序 Swap交换两个int类型的数据 Sort排序 QuickSort快速排序(递归) main
冒泡排序、交换法排序、选择法、插入法、快速排序、归并排序
排序是计算机程序设计中的一种重要...插入排序类、交换排序类、选择排序类、归并排序类和基数排序类。算法主要包括:插入排序、折半插入排序、选择排序、冒泡排序、希尔排序、快速排序、堆排序、归并排序、基数排序等。
本文介绍了使用C++语言实现冒泡排序的算法。冒泡排序是一种简单的排序算法,它通过相邻元素之间的比较和交换,将较大的元素逐步“冒泡”到数组的末尾,从而完成整个数组的排序。在实现的代码中,使用了两层循环:...
分治法的另外一种排序算法,快速排序。有注释,便于阅读,因为交换时使用的引用,暂时归为C++,C语言版稍后奉上。
在代码有集合了所有排序算法的代码,多以template 模板写的,集合了排序算法五大类别:插入、选择、交换、归并、基数 具体分类为: 插入->直接插入 插入->Shell排序(希尔) 选择->直接选择 选择->堆排序 交换->冒泡排序 ...
5.0简介5.1 数据序列及其排序5.2 插入排序5.3 交换排序5.4 选择排序5.5 归并排序第5章 排序算法有序的数据便于处理,例如提高查找的效率。排序
前面的文章已经介绍了几种排序算法,如插入排序(直接插入排序,折半插入排序,希尔排序)、交换排序(冒泡排序,快速排序)、选择排序(简单选择排序,堆排序)、2-路归并排序(可以参考前一篇文章:各种内部排序...
这里就把各种内部排序算法总结归纳了一下,包括插入排序(直接插入排序,折半插入排序,希尔排序)、交换排序(冒泡排序,快速排序)、选择排序(简单选择排序,堆排序)、2-路归并排序。(另:至于堆排序算法,前面...
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。
01交换算法 02冒泡排序 03选择排序 04顺序排序 05折半排序 06递归算法 07递归折半查找 08算法_perm 09插入排序 10快速排序 11归并排序 12顺序栈 13顺序队列 14链表的基本概率 15链表 16链表的迭代器 17循环链表 18...
冒泡排序 插入排序 选择排序 快速排序 归并排序 交换排序 效率比较 代码结构清晰