1. 程式人生 > >C語言 冒泡排序

C語言 冒泡排序

acf %d efi 語言 lap 次數 int code 錯誤

冒泡排序( Bubble Sort )

比較相鄰的兩個數,如果錯誤則進行交換,重復訪問整個排序的數列

技術分享
#include <stdio.h>
#define KSIZE 8

static int count;

// 冒泡排序
void bubble_sort(int a[],int n);

int main(int argc, const char * argv[]) {
    
    int number[KSIZE] = {1,2,3,4,5,6,7,8};
    int i;
    bubble_sort(number, KSIZE);
    printf("排序次數:%d\n
",count); for (i=0; i<KSIZE; i++) { printf("%d ",number[i]); } return 0; } void bubble_sort(int a[],int n) { int i,j,temp; for (j = 0; j<n-1; j++) for (i=0; i<n-j-1; i++) if (a[i] < a[i+1]) { // 從大到小 temp = a[i]; a[i]
= a[i+1]; a[i+1] = temp; count++; } }
冒泡排序

解析

1,2,3,4,5 — 希望得到:5,4,3,2,1

2,3,4,5,1 - 第一次排序 — 4次

3,4,5,2,1 - 第二次排序 - 3次

4,5,3,2,1 - 第三次排序 - 2次

5,4,3,2,1 - 第四次排序 - 1次

C語言 冒泡排序