冒泡排序:遍历文件,如果近邻的两个元素大小顺序不对,就将两者的顺序进行交换,重复这样的操作,直到整个文件排好序。
从前到后排:首先将第一个记录的关键字和第二个记录的关键字进行比较,若第一个记录的关键字大于第二个记录的关键字则交换,然后比较第二个记录和第三个记录的关键字。
依次类推,直到第n-1和n个记录的关键字进行比较为止。上述是第一趟冒泡排序,将关键字最大的放在了最后的位置。然后进行第二趟冒泡排序,依次类推。
从后向前排:同从前向后排,只是将第一趟排序是将最小的关键字记录放在了第一位,依次类推。
主程序代码(简单的数组元素排序):
从前到后排:首先将第一个记录的关键字和第二个记录的关键字进行比较,若第一个记录的关键字大于第二个记录的关键字则交换,然后比较第二个记录和第三个记录的关键字。
依次类推,直到第n-1和n个记录的关键字进行比较为止。上述是第一趟冒泡排序,将关键字最大的放在了最后的位置。然后进行第二趟冒泡排序,依次类推。
从后向前排:同从前向后排,只是将第一趟排序是将最小的关键字记录放在了第一位,依次类推。
代码实现:(从前向后排)
void BubbleSort(int a[], int n) {
int i, j;
int temp;
for (i = 0; i < n - 1; i++) {
for ( j = 0; j < n-i-1; j++)
{
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
主程序代码(简单的数组元素排序):
#include<stdio.h>
#define N 100
void BubbleSort(int a[],int n);
main() {
int i, j;
int n;
int a[N];
printf("请输入排序数组元素的个数:");
scanf_s("%d", &n);
printf("请输入数组元素:");
for ( i = 0; i <n; i++)
{
scanf_s("%d", &a[i]);
}
printf("排序前的数组元素:");
for (i = 0; i <n; i++)
{
printf("%5d", a[i]);
}
printf("\n");
BubbleSort(a, n);
printf("排序后的数组元素:");
for (i = 0; i <n; i++)
{
printf("%5d", a[i]);
}
printf("\n");
getch();
}