1. 程式人生 > >用C語言實現氣泡排序

用C語言實現氣泡排序

 

#include <stdio.h>

#define MAX 11

int main(int argc, const char *argv[])
{
	int a[MAX] = {0};
	int i, j, t;
	char ch;
	
        /*輸入資料*/
	printf("Please input %d number:\n",MAX);
	for(i = 0; i < MAX;){
		scanf("%d", &a[i++]);
		if(((ch = getchar()) == '\n') && i >= MAX)
			break;
	}
        /*輸出資料*/
	printf("OUtput :\n");
	for(i = 0; i < MAX; i++){
		printf("%d ",a[i]);
	}
	puts("\n");
        
        /*資料排序*/
	for (i = 0; i < MAX-1; i++){
		for(j = 0; j < MAX-1-i; j++){
			if(a[j] > a[j+1]){
					t = a[j];
					a[j] = a[j+1];
					a[j+1] = t;
			}
		}
	}
	    /*輸出排序後的資料*/
	printf("paixu Output:\n");
	for(i = 0; i < MAX; i++)
		printf("%d ", a[i]);
	puts(" ");

	return 0;
}

 隨機輸入N個數據(亂序),進行排序輸出

#include <stdio.h>

int main(int argc, const char *argv[])
{
	int a[100] = {0};
	int i, j, t;
	int n = 0;
	char ch;
	
	printf("Please input <100 number:\n");

	for(n = 0; n <=100;){
		scanf("%d", &a[n++]);
		if(((ch = getchar()) == '\n') || n > 100)
		break;
	}
	
	//printf("a[n] len ==>n = %d \n",n);
	
	printf("OUtput :\n");
	for(i = 0; i < n; i++)
		printf("%d ",a[i]);
	puts("\n");

	for (i = 0; i < n-1; i++){
		for(j = 0; j < n-1-i; j++){
			if(a[j] > a[j+1]){
					t = a[j];
					a[j] = a[j+1];
					a[j+1] = t;
			}
		}
	}
	
	printf("paixu Output:\n");
	for(i = 0; i < n; i++)
		printf("%d ", a[i]);
	puts(" ");

	return 0;
}

 輸出結果