十大基本排序算法整理(3/10)

2021/4/15 22:55:25

本文主要是介绍十大基本排序算法整理(3/10),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

//三种基本排序算法
void BubbleSort(int arr[], int len) {
    for (int i = 0; i < len-1; ++i) {
        for (int j = 0; j < len-i-1; j++ ) {
                if (arr[j] > arr[j+1]) {
                    //确保每个元素都能被取到
                    arr[j] = arr[j]^arr[j+1];
                    arr[j+1] = arr[j+1]^arr[j];
                    arr[j] = arr[j]^arr[j+1];
                }
        }
    }
}
//命名规范使用C标准 算法笔记使用C++面向对象标准
//中文字符下的空格也会出现问题?!
void SelectSort(int arr[], int len) {
    for (int i = 0; i < len-1; i++) {
        //进行n-1趟循环
        int min = i;
        for (int j = i + 1; j < len; j++) {
            // 遍历元素时要保证到最后一个元素
            if (arr[min] > arr[j]) {
                min = j;
            }
        }
    if (min != i) {
                arr[i] = arr[i] ^ arr[min];
                arr[min] = arr[min] ^ arr[i];
                arr[i] = arr[i] ^ arr[min];
            }
        }
}
void InsertSort(int arr[], int len) {
    for (int i = 1; i < len; ++i) {
        //控制排序的次数 n-1

        //temp 表示待插入的元素
        int temp = arr[i];
        //j 表示待插入位置
        int j = i;

        while (j > 0 && temp < arr[j-1]) {
            arr[j] = arr[j-1];
            j--;
        }
        //待插入位置发生更新时 填入 
        if (i != j) {
            arr[j] = temp;
        }
    }
}


这篇关于十大基本排序算法整理(3/10)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程