1. 程式人生 > >在陣列下的選擇、氣泡排序

在陣列下的選擇、氣泡排序

對於相同型別的大資料,我們常採用在陣列,為了方便快捷查詢,我們總希望對這個陣列進行排序,下面介紹兩種排序:冒泡,選擇排序,其實選擇排序只是氣泡排序的一種進化版,減少了運算次數,提高執行效率,不扯了,下面開始。第一個為選擇,第二個為冒泡
#include <stdio.h>
#define N 10

int main()
{
	int a[N] = {9,8,7,6,32,40,3,2,1,0};
	
	int i,j;
	
	// 外層迴圈控制比較的輪數
	for (i = 0; i < N-1; i++)
	{
		// 內層負責查詢每一輪中最小的那個元素
		int index = i;
		for (j = i+1; j < N; j++)
		{
			if (a[index] > a[j])
			{
				index = j;
			}
		}
		
		// 將當前最小的元素與下標位 i 的元素進行交換
		if (index != i)
		{
			int tmp = a[i];
			a[i] = a[index];
			a[index] = tmp;
		}
	}
	
	for (i = 0; i < N; i++)
	{
		printf ("%d\n", a[i]);
	}
	
	return 0;

#include <stdio.h>
#define N 10

int main()
{
	int a[N] = {9,8,7,6,32,40,3,2,1,0};
	
	int i,j;
	int tmp;
	// 外層控制比較的輪數 
	for (i = 0; i < N-1; i++)
	{
		// 內層迴圈控制每一輪比較需要比較的次數
		for (j = 0; j < N-i-1; j++)
		{
			if (a[j] > a[j+1])
			{
				tmp    = a[j];
				a[j]   = a[j+1];
				a[j+1] = tmp;
			}
		}
	}
	
	for (i = 0; i < N; i++)
	{
		printf ("%d\n", a[i]);
	}
	
	return 0;
}