排序

44 阅读2分钟

排序算法是计算机科学中非常重要的一部分,用于将一组数据按照某种顺序排列。排序算法的目的是将一组数据按照特定的顺序进行排列,常见的排序算法有冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序和基数排序等。

例1

#include<stdio.h>
int main38(){
	//从键盘上输入5个数字,并对他们进行排序(从小到大排序),在打印输出
//类型 数组名[个数] 
	int arr[5];
	
	for(int i=0;i<5;i++){
	scanf("%d",&arr[i]);		
	}

printf("---------\n");
	
	//如何打印第一个元素值?
	//打印输出
	for(int i=0;i<5;i++){
		printf("%d",arr[i]); 
	}
    return 0;
}

例2

#include<stdio.h>
int main(){
	
	int arr[5]={5,3,2,6,4};
	//排序: 2,3,4,5,6
	//1,交换数组中两个元素值
	//{5,3,2,6,4}
	//把下标为0的元素,和下标1的元素交换位置{3,5,2,6,4}
	int temp = arr[0];//temp= 5;
	
	arr[0] = arr[1];//arr[0] = 3;
	
	arr[1] = temp;//arr[1] = 5
	
	printf("%d",arr[0]);
	printf("%d",arr[1]); 
}

例3

#include<stdio.h>
int main(){
	
	int arr[5]={3,4,2,5,6};
	//排序: 2,3,4,5,6
	//1,交换数组中两个元素值
	//{5,3,2,6,4}
	//把下标为0的元素,和下标1的元素交换位置{3,5,2,6,4}
	//第一次循环,把最大的值放在最后面 
	for(int i=0;i<4;i++){
	    for(int j=0;j<4;j++){
		    if(arr[j]>arr[j+1]){
			    int temp = arr[j];
			    arr[j] = arr[j+1];
			    arr[j+1]=temp;
		    }
	    }
    }
    for(int i=0;i<5;i++){
	    printf("%d",arr[i]); 
}
}

例4

#include<stdio.h>
int main(){
	
	int arr[5];
	//排序: 2,3,4,5,6
	//1,交换数组中两个元素值
	//{5,3,2,6,4}
	//把下标为0的元素,和下标1的元素交换位置{3,5,2,6,4}
	//第一次循环,把最大的值放在最后面 
	for(int i=0;i<5;i++){
		scanf("%d",&arr[i]);
    }
	    for(int i=0;i<4;i++){
	    	for(int j=0;j<4;j++){
		    if(arr[j]>arr[j+1]){
			    int temp = arr[j];
			    arr[j] = arr[j+1];
			    arr[j+1]=temp;
		    }
	    }
    }
    printf("--------------\n");
    for(int i=0;i<5;i++){
	    printf("%d\n",arr[i]); 
    }
}