C语言--冒泡排序和简答选择排序

冒泡排序

一种典型的交换排序
类似水冒泡,大元素经不断的交换由水底慢慢的浮出
从头到尾,循环比较两相邻的元素
    大的元素移到后面,小的放前面-每次循环,大的元素会排到最后

代码如下: 

#include 
#include
//升序排序
void Bubble_sort(int a[], int size){
	int i,j,temp;
	for(int i=0 ; i a[j+1])//比较,大的在后面
				{
					temp = a[j]; a[j]= a[j+1]; a[j+1]=temp;
					flag =1;
				}
			}
			//若flag为0,则在该轮次没有交换动作,说明排序已经完成,break跳出循环
			if(flag == 0 ) break;	
	}
}

void main()   
{	
	int a[10];
	printf("输入10个整形数据(整数):");
	for(int i=0;i<10 ; i++)
		scanf("%d",&a[i]);  
	
	Bubble_sort(a,10);	//排序处理
	printf("排序后的数组:\n");
	for(int i=0;i<10 ; i++)
		printf("%d ",a[i]);  

	system("pause");//屏幕暂停
}

简单选择排序

简单选择排序(Select Sort)示意图如下图所示。 

C语言--冒泡排序和简答选择排序_第1张图片

代码如下:

#include 
#include

void SelectSort(int arr[],int n){
	//minIndex用于记录每一趟中最小元素的下标
	int i,j,temp,minIndex;
	/*
		外层循环,用于控制第1层到第n-1轮排序
		第i轮循环时,后面部分的元素的下标范围为(i-1) 到 (n-1)
	*/
	for( i=1; i

C语言--冒泡排序和简答选择排序_第2张图片

你可能感兴趣的:(C,排序算法,算法,数据结构)