您的位置:首页 > 编程语言 > C语言/C++

c语言版本的冒泡法

2014-07-19 09:16 260 查看
#include <stdio.h>
#include <stdbool.h>

int main(int argc, const char *argv[])
{
int arr[] = {2, 5, 3, 9, 1, 11, 4};

bool sorted = false;    // 设定一个标记状态的变量, 用于控制循环;

int arrCount = sizeof(arr)/sizeof(arr[0]);

while(!sorted)
{
sorted = true;
for(int i = 0; i < arrCount-1; ++i)
{
if(arr[i] > arr[i+1])   // 比较相邻两个元素的大小;
{
sorted = false;     // 如果顺序有误, 将sorted变量设定为false, 然后执行位置互换操作;
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}

for(int i = 0; i < arrCount; ++i)
{
printf("%d\t", arr[i]);
}

putchar('\n');

return 0;
}

// 第一次循环后: {2, 3, 5, 1, 9, 4, 11}
// 第二次循环后: {2, 3, 1, 5, 4, 9, 11}
// 第三次循环后: {2, 1, 3, 4, 5, 9, 11}
// 第四次循环后: {1, 2, 3, 4, 5, 9, 11}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: