数组排序
2018-04-30 本文已影响0人
RicherYY
冒泡排序
冒泡排序的基础原理就是查找(遍历)和交换
给了一排数字计算机只能挨个比对和交换。
include <stdio.h>
include <stdlib.h>
define N 5 //宏定义数组长度
int main()
{
//冒泡排序
int temp; //用来交换的临时变量
int nums[N] = {16, 25, 9, 90 ,23};
int i, j; //循环变量
//外层循环控制轮数
for (i = 0; i < N -1; i++) //第一轮是数组总长度 - 1 轮
{
//内层循环控制比较次数
for (j = 0; j < N - i - 1; j++) //每一轮比较上一轮比较次数 - 1(上一轮比较0次)-i是因为比较了i轮
{
//如果当前的值小于后面的值就进行交换
if(nums[j] > nums[j + 1])
{
temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
printf("循环的结果;\n");
for (i = 0; i < N; i++)
{
printf("%d\t",nums[i]);
}
return 0;
}
冒泡排序的特点
1.需要比较多次 (数组长度 - 1轮)
2.第一轮比较了4次(数组的总长度 - 1)
每一轮的次数比较上一轮的次数 - 1((数组长度 - 1) - 当前轮数)