C语言之单向冒泡排序改进版
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言之单向冒泡排序改进版相关的知识,希望对你有一定的参考价值。
C语言之单向冒泡排序改进版
改进的地方:在比较元素大小时候如果前面的元素小于后面的元素就跳过这一轮比较。
- C源码:
#include <stdio.h>
void bubbleSort(int arr[], int n)
{
int i, j, tmp,flag = 1;
for (i = 0; i < n - 1 && flag == 1; i++)
{flag = 0; //每次开始flag置零
for (j = 1; j < n; j++)
{//比较第一轮
if (arr[j] < arr[j - 1])
{//比较数组中前后位置的数大小
tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
flag = 1; //如果有数据交换,则flag为1
}
}
}
}
void printArray(int arr[], int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\\n");
}
int main()
{
int arr[10] = {2, 5, 6, 4, 3, 7, 9, 8, 1, 0};
printArray(arr, 10);
bubbleSort(arr, 10);
printArray(arr, 10);
return 0;
}
以上是关于C语言之单向冒泡排序改进版的主要内容,如果未能解决你的问题,请参考以下文章