算法练习---冒泡排序(C语言版)

转载请注明:http://blog.csdn.net/u011046042/article/details/75200358

  • 基本思想

    通过对相邻元素的比较和交换,使全部记录排列有序。

  • 冒泡排序的过程
    对每两个相邻的元素进行比较,若为逆序,则将两者交换,这样的操作反复进行,直至全部记录都比较、交换完毕为止。如此经过一趟冒泡排序之后,就将关键字最大(或最小)的元素安排在最后一个(或第一个) 元素的位置上。然后,对后n-1个元素重复进行同样的操作,则将具有次大(或次小)元素安排在倒数(或正数)第二个元素的位置上。重复以上过程,直至没有元素需要交换时为止。至此,整个序列的记录按关键字由小到大的顺序排列完毕。

  • 排序的步骤
    第一步:令位置1和位置2的元素比较,若位置1的元素大,则交换
    第二步:令位置2和位置3的元素比较,若位置2的元素大,则交换
    第三步:令位置3和位置4的元素比较,若位置3的元素大,则交换

  • 外循环和内循环
    原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束

  • 具体的C语言代码实现如下:

#include <stdio.h>
#define SIZE 11

int count =0;
void bubble_sort(int a[], int n);

void bubble_sort(int a[], int n)
{
    int i, j, temp;
    for (j = 0; j < n - 1; j++)
        for (i = 0; i < n - 1 - j; i++)
        {
            if(a[i] > a[i + 1])
            {
                temp = a[i];
                a[i] =
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章