排序算法之冒泡排序
2021-01-14 12:15
标签:一次循环 sizeof 最大值 amp void 循环 一个 i+1 分析 确定数组需要传入两个参数:数组的首地址和数组元素的个数 冒泡规则,假设一个int a[5]的数组,升序规则如下 ? 第一次排序: a[0]与a[1]比较,大的值放在a[1],小的值放在a[0]; a[1]与a[2]比较,大的值放在a[2],小的值放在a[1]; a[2]与a[3]比较,大的值放在a[3],小的值放在a[2]; a[3]与a[4]比较,大的值放在a[4],小的值放在a[3]; 第一次排序结果为取出最大值放在a[4]; 第二次排序: a[0]与a[1]比较,大的值放在a[1],小的值放在a[0]; a[1]与a[2]比较,大的值放在a[2],下的值放在a[1]; a[2]与a[3]比较,大的值放在a[3],小的值放在a[2]; 第二次排序的结果为取出剩余元素中的最大值放在a[3]中; 第三次排序: ? 第四次排序: 由冒泡规则分析得n个元素排序,需要排n-1次 嵌套两层循环,第一层每次都是比较数组的前两个元素 第二层从第二个元素开始,按照排序规则依次往后两两比较,大的放后面,小的放前面 第二层for循环第一次循环结束之后将数组长度-1,继续第一层for循环,依次反复,直到数组长度为2时排序结束 代码如下: 两层循环,第一层用来确定总体循环次数并限制第二层循环执行次数 第二层用来按照升序进行两两对比,大的放后面,小的放前面 第二层循环次数以第一层来限制,第二层每整体循环完一次之后循环执行次数就会少一次 代码如下: 排序算法之冒泡排序 标签:一次循环 sizeof 最大值 amp void 循环 一个 i+1 分析 原文地址:https://www.cnblogs.com/jiaqinbi/p/12942027.html冒泡排序
前置知识
排序分析一
#include
排序分析二
void sort2(int * pArr, int len)
{
int i, j, max;
for(i = 0; i pArr[j+1])
{
max = pArr[j];
pArr[j] = pArr[j+1];
pArr[j+1] = max;
}
}
}
for(i = 0; i