C语言--排序

56 阅读1分钟

1.交换数组中两个值

#include<stdio.h>
int main(){
	int arr[5]={5,3,2,6,4};
	//交换数组中第一个和第二个的值
	int temp=arr[0];
	arr[0]=arr[1];
	arr[1]=temp; 
	
	printf("%d",arr[0]);
	printf("%d",arr[1]);
	
}

输出如下

image.png

2.通过比较相邻元素的大小,并交换,把最大的值放在数组最后面 (只写了5个数)

#include<stdio.h>
int main(){
	int arr[5]={5,3,2,6,4};

	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\n", arr[i]);
    
	}
}

输出如下

image.png

3.通过比较相邻元素的大小,排序(只写了5个数)

#include<stdio.h>
int main(){
	int arr[5]={5,3,2,6,4};
	
	for(int i=0;i<4;i++){
	//下面代码执行4次 
		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\n", arr[i]);
    
	}
}

输出如下

image.png

4.从键盘上输入5个数字,并对他们进行排序(从小到大排序),再打印输出(冒泡函数)

#include <stdio.h>
int main(){
    // 从键盘上输入5个数字
    int arr[5];

    for(int i=0; i<5; i++){
        scanf("%d", &arr[i]);
    }

    for(int i=0; i<4; i++){
    	//下面代码执行4次 
        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]);
	}
}

输出如下

image.png