小甲鱼 排序算法 选择排序

小甲鱼 排序算法 选择排序

虽然选择排序 和 冒泡排序 进行的比较次数是一样的,但是选择排序 比 冒泡排序 进行移动的次数少,效率更高

选择排序:

//selectsort.c
#include <stdio.h>

void SelectSort(int k[], int n)
{
	int i, j, min, temp, count1=0, count2=0;
	for(i = 0; i < n-1; i++)
	{
		min = i;
		for(j = i+1; j < n; j++)
		{
			count1++;
			if (k[j] < k[min])
			{
				min = j;//最小元素的位置 
			}
		}
		
		if (min != i)//待交换的i
		{
			count2++;
			temp = k[min];
			k[min] = k[i];
			k[i] = temp;
		}	
	}
	
	printf("总共进行了%d次比较,进行了%d次移动!\n", count1, count2);
}

int main(void)
{
	int i, a[10] = {5, 2, 6, 0, 3, 9, 1, 7, 4, 8};
	
	SelectSort(a, 10);
	
	printf("排序后的结果是:");
	for(i = 0; i < 10; i++)
	{
		printf("%d", a[i]);
	}
	printf("\n\n");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/xiaodingqq/article/details/83000329