(排序算法)linux c语言实现选择排序算法(冒泡排序的略微改进版)

 快速排序算法和冒泡排序算法是差不多的,都是要两层循环,外循环是要比较的个数,其实就是元素的个数,内循环就是外层那个标记和其他的比较大小,

冒泡排序是相邻的两个,两两比较,最后交换出一个最大或者最小值,

快速排序是在冒泡排序的基础上,找出那个最小的或者最大的,但是不是直接交换,而是记下它的下标,最后把开头和这个下标的元素交换。

快速排序算法是不稳定的排序算法,比冒泡排序算法稍微快一点。

以下代码里有快速排序和冒泡排序的代码,可以比较以下差异,

/***************************************************
##filename      : selectsort.c
##author        : GYZ                               
##e-mail        : [email protected]                 
##create time   : 2018-10-31 09:54:39
##last modified : 2018-11-05 11:07:30
##description   : NA                                
***************************************************/
#include <stdio.h>                                  
#include <stdlib.h>                                 
#include <string.h>                                 
#include <time.h>
                                                    
void selectSort(int a[],int n)
{
	/*selection sort*/
	int i = 0,j = 0;
	int min_index = 0;
	int temp = 0;
	for(i = 0; i < n; ++i)
	{
		for(j = i+1; j < n; ++j)
		{
			if(a[i] > a[j])
			{
				min_index = j;
			}	
		}
		temp = a[i];
		a[i] = a[min_index];
		a[min_index] = temp;
	}
	/*bubble sort*/
	/*
	int temp = 0;
	int i = 0,j = 0;
	
	for(i = 0; i < n; ++i) 
	{
		for(j = i+1; j < n; ++j)
		{
			if(a[i] > a[j])
			{
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	}*/
}
void printArr(int a[],int n)
{
	int i;
	for(i = 0; i < n; i++)
	{
		printf("%d,",a[i]);
	}                      
	printf("\n");                             

}                                                    
int main(int argc,char *argv[])                     
{                                                   
	int length = 0;
	int begin,end;
	int a[] = {26,20,10,14,15,21,22,23,24,25,28,29,30,3,5,6,1,9,4,8,2,7,11,13,12,27,18,19,16,17};
	
	length = sizeof(a) / sizeof(a[0]);
	
	begin = clock();
	selectSort(a,length);
	end = clock();
	printf("%d\n",end-begin);
	printArr(a,length);

	return 0;                                       
}                                                   
                                                    
                                                    

猜你喜欢

转载自blog.csdn.net/weixin_39465823/article/details/83689483