// 排序算法

选择排序(selection Sort)

1   0   6   9   4   3


遍历数组,找出最大(最小)值,和最`后一个`交换

1   0   6   `9`   4   `3` ---> 1   0   6   `3`   4   `9`  
1   0   `6`   3   `4`   9 ---> 1   0   `4`   3   `6`   9  
1   0   `4`   `3`   6   9 ---> 1   0   `3`   `4`   6   9  
1   0   `3`   `4`   6   9 ---> 1   0   `3`   `4`   6   9  
...

#include< stdio.h>
int findMaxPos(int arr[],int n){
    int max = arr[0];
    int pos = 0;
    int i;
    for(i = 0;i < n;i++){
        if(arr[i] > max){
            max = arr[i];
            pos = i;

        }
        return pos; 

    }

}
void selectionSort(int arr[],int n){
    while(n>1){
            int pos = findMaxPos(arr[],n);
            int temp = arr[pos];
            arr[pos] = arr[n-1];
            arr[n-1] = temp;
            n--;
    }

}
int main(){
    int arr[]={1,   0,  6,  9,  4,  3};
    selectSort(arr[],9);

    int i;
    for(int i = 0;i <= 9;i++)
        printf("%d\n",arr[i]);
}

冒泡排序(bubble Sort)

1   0   6   9   4   3  

两两相比较,找出最大的,经过一趟排序后在最后面 (石沉大海)   

[1 0]   6   9   4   3 --->  [0 1]   6   9   4   3  
0   [1 6]   9   4   3 --->  0   [1 6]   9   4   3  
0   1   [6 9]   4   3 --->  0   1   [6 9]   4   3  
0   1   6   [9 4]   3 --->  0   1   6    [4 9]  3  
0   1   6   4   [9 3] --->  0   1   6   4   [3 9]  

————- 采用函数封装一下 ————-

#include <stdio.h>  
void  bubble(arr[], int n){
    int i;
    int temp;
    for(i = 0;i < n-1 ;i++ ){
        if(arr[i] > arr[i+1]){
            temp =arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = temp;
        }

    }
}
void bubbleSort(int arr[],int n){
    ```
    /*bubble(arr,n)
    bubble(arr,n-1)
    bubble(arr,n-2)
    bubble(arr,1)*/
    ```
    int i;
    for(i = n;i >=1;i--){
        bubble(arr,i);
    }

}
int main(){
    int arr[] = {1, 0,  6,  9,  4,  3};
    int i;
    bubbleSort(arr,9)
}

————- *简化下书本的 * ————-

void bublleSort(int *arr, int length) {    
    for(int i = 0; i < length - 1; i++) { //趟数        
        for(int j = 0; j < length - i - 1; j++) { //比较次数 
            if(arr[j] > arr[j+1]) {                
                int temp = arr[j];                
                arr[j] = arr[j+1];                
                arr[j+1] = temp;            
            }

        }
    }
}

插入排序(insertion Sort)


一个有趣的人