排序算法(3):冒泡排序
来源:互联网 发布:趣味学英语的软件 编辑:程序博客网 时间:2024/06/05 02:26
冒泡排序:遍历文件,如果近邻的两个元素大小顺序不对,就将两者的顺序进行交换,重复这样的操作,直到整个文件排好序。
从前到后排:首先将第一个记录的关键字和第二个记录的关键字进行比较,若第一个记录的关键字大于第二个记录的关键字则交换,然后比较第二个记录和第三个记录的关键字。
依次类推,直到第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 100void 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();}
1 0
- 排序算法(3):冒泡排序
- 排序:冒泡排序(算法)
- 冒泡排序(排序算法--比较排序)
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法 冒泡排序
- 排序算法-- 冒泡排序
- 排序算法-冒泡排序
- 排序算法---冒泡排序
- 排序算法-冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 虚函数的实现机制
- 配置系统
- java中线程创建的第二种方法
- (java) Path Sum
- meizu手机的虚拟键盘被popwindow覆盖的解决办法
- 排序算法(3):冒泡排序
- PMBOX 五大过程组合9个知识体系
- Android 的设置项 II-Reading Settings&Custom Preference
- leetcode:242 Valid Anagram-每日编程第八题
- 剑指offer系列之二十九:连续子数组的最大和
- Gradle入门安装
- web.xml加载顺序
- Java多线程学习(吐血超详细总结)
- 《Linux内核Makefile分析》之 if_changed_rule/cc_o_c/any-prereq/arg-check