Lickoo的小本本
Lickoo的小本本

C++代码备忘

C++代码备忘

插入排序

#include <iostream>
#include <string.h>
using namespace std;

int* insertSort(int* arr,int len){  //插入排序算法
    int* tempArr = (int*)malloc(sizeof(int) * len);
    int pos = 0;
    memcpy(tempArr,arr,sizeof(int));
    for(int i = 1;i < len;i++){  //从i = 1开始
        // cout << tempArr[i];
        tempArr[i] = arr[i];  //先给数组第一个赋值,然后再进行后续比较
        pos = i;
        while(tempArr[pos] < tempArr[pos - 1]){  //当i-1 < i时一直进行交换
            int temp = tempArr[pos];
            tempArr[pos] = tempArr[pos - 1];  //插入部分有疑问?
            tempArr[pos - 1] = temp;
            pos--;  //对比较的指针进行前移,否则只会移动一次
        }
    }
    return tempArr;
}

int* selectSort(int* arr,int len){  //选择排序
    int* tempArr = (int*)malloc(sizeof(int) * len);
    memcpy(tempArr,arr,sizeof(int) * len);
    for(int i = 0;i < len;i++){
        for(int j = i + 1;j < len;j++){  //画图,每次j从i+1出发
            if(tempArr[j] < tempArr[i]){  //若满足条件,交换?(应该筛选出最大值)
                int temp = tempArr[j];
                tempArr[j] = tempArr[i];
                tempArr[i] = temp;
            }
        }
    }
    return tempArr;
}

void printArr(int* arr,int len){  //输出数组
    for(int i = 0;i < len;i++){
        cout << " " << arr[i];
    }
}


int main()
{
    int testArr[10] = {40,22,33,54,66,77,10,2,58,69};
    // cout << sizeof(testArr) / 4;
    int* resArr = (int*)malloc(sizeof(testArr));
    int* res2Arr = (int*)malloc(sizeof(testArr));
    resArr = insertSort(testArr,sizeof(testArr) / 4);
    res2Arr = selectSort(testArr,sizeof(testArr) / 4);
    printArr(resArr,sizeof(testArr) / 4);
    cout << endl;
    printArr(res2Arr,sizeof(testArr) / 4);
    return 0;
}

Lickoo的小本本

C++代码备忘
插入排序 #include <iostream> #include <string.h> using namespace std; int* insertSort(int* arr,int len){ //插入排序算法 int* tempArr = (int*)malloc(sizeof…
扫描二维码继续阅读
2022-08-18
--> <-- mouse effects show end -->