1、功能:冒泡排序
输入:数组名称(也就是数组首地址)、数组中元素个数
================================================ */
/*
==================================================== 算法思想简单描述:
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上 而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较 小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要 求相反时,就将它们互换。
下面是一种改进的冒泡算法,它记录了每一遍扫描后最后下沉数的 位置k,这样可以减少外层循环扫描的次数。
冒泡排序是稳定的。算法时间复杂度O(n2)--[n的平方]
===================================================== */
void bubble_sort(int *x, int n)
{
int j, k, h, t;
for (h=n-1; h>0; h=k) /*循环到没有比较范围*/
{
for (j=0, k=0; j<h; j++) /*每次预置k=0,循环扫描后更新k*/ {
if (*(x+j) > *(x+j+1)) /*大的放在后面,小的放到前面*/
{
t = *(x+j);
*(x+j) = *(x+j+1);
*(x+j+1) = t; /*完成交换*/
k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/ }
}
}
}
2
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上
而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较
小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要
求相反时,就将它们互换。
下面是一种改进的冒泡算法,它记录了每一遍扫描后最后下沉数的
位置k,这样可以减少外层循环扫描的次数。
冒泡排序是稳定的。算法时间复杂度O(n^2)
算法实现:
/*
功能:冒泡排序
输入:数组名称(也就是数组首地址)、数组中元素个数
*/
void bubble_sort(int *x, int n)
{
int j, k, h, t;
for (h=n-1; h>0; h=k) /*循环到没有比较范围*/
{
for (j=0, k=0; j<h; j++) /*每次预置k=0,循环扫描后更新k*/
{
if (*(x+j) > *(x+j+1)) /*大的放在后面,小的放到前面*/
{
t = *(x+j);
*(x+j) = *(x+j+1);
*(x+j+1) = t; /*完成交换*/
k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/
}
}
}
}
流程图作参考
关于流程图图示是否有国际间认同定义我也曾请教过一些专业人士但似乎没有一致的定论以目前微软产品visio应用最多当然国际上也有专业的…
在标书编制或者施工方案编写工作中我们常常会需要绘制施工工艺流程图如果使用比较经典的流程图绘制工具比如Visio可能会觉得比较麻烦而…
1引言目前可编程序控制器简称PLC由于具有功能强可编程智能化等特点已成为工业控制领域中最主要的自动化装置之一它是当前电气程控技术的…
流程图的绘制方法及要求为了使程序文件管理制度中的工作流程绘制美观且格式统一特编写此文件希望能够对您的流程图绘制给予一定的指导与帮助…
1、迎客准备:当宾客到来时,在距离客人1.5—2米和感觉与客人眼光相遇时开始行礼,欢迎宾客:“先生/小姐,晚上好!欢迎光临!”行礼…
产前筛查及产前诊断工作流程图早孕建卡时咨询,初筛高危病例、宣传产前筛查的意义告知目前筛查的先天性疾病书面告知孕妇妊娠结局中如发现筛…
早孕建卡时咨询,初筛高危病例、宣传产前筛查的意义告知目前筛查的先天性疾病书面告知孕妇妊娠结局中如发现筛查疾病,检出率、假阳性率及意…
一、辩论赛程序(由主席执行)1、开场白2、队员入场,介绍参赛队及其所持立场,介绍参赛队员,介绍评委及其点评嘉宾3、比赛开始4、评判…