配合C++的Algorithm基础

来源:互联网 发布:网络故障诊断1一1 编辑:程序博客网 时间:2024/06/06 02:52

C++基础知识

#include<stdio.h>#include<iostream>int main(int argc, char *argv[]){    int size = 10;    for (int i = 0; i < size; i++)    {        printf("i = %d \n", i);    }    system("pause");                return 0;}
  1. 如果想用system("pause"); 需要头文件 #include<iostream>

  2. for (int i = 0; i < size; i++) 这个for只是想告诉自己,i = 0 后的 i++第一次不起效果,第一次输出的还是 i= 0

  3. (int argc, char *argv[])
    argc 的意思是
    *argv 的意思是





Insertion Sort

/* c program for insert sort */#include<stdlib.h>#include<stdio.h>#include<iostream>using namespace std;void SwapTwo(int &a, int &b){    int temp = a;    a = b;    b = temp;}void InsertSort(int arr[], int size) {    for (int i = 1; i < size; i++)     {        int inserter = arr[i];        int index = i - 1;        while (index >= 0 && inserter < arr[index])         {            /*            i = 10            index = 9 ,             inserter = arr[10]            arr[9]>inserter的话            arr[10]     变成9号,相当于后移了一位            inserter    还是原来10号的数字不变            arr[9]      不变            i = 9            index = 8 ,            inserter = arr[10]原来的数字,但现在arr[10]位置上现在是9号            arr[8]>inserter的话            arr[9]      变成8号            inserter    还是原来10号的数字不变            arr[8]      不变            如果arr[8]>inserter不成立            arr[9] = inserter             */            arr[index + 1] = arr[index];            index--;        }        arr[index + 1] = inserter;    }}int main(){    int nums[] = { 5,3,7,2,1,9,14,8,7,4,30,18,1,23,27 };    int size = sizeof(nums) / sizeof(int);    InsertSort(nums, size);    for (int i = 0; i < size; i++)    {        cout << nums[i] << " ";    }    cout << endl;    system("pause");    return 0;}
void InsertSort(int arr[], int size) {    int j, temp;    for (int i = 0; i < size; i++)     {        j = i;        while (j > 0 && arr[j] < arr[j - 1])        {            temp = arr[j];            arr[j] = arr[j - 1];            arr[j - 1] = temp;            j--;        }    }}
  1. 和上面一个算法的区别是,上面并没有换位,而是把插入的数字保留在了inserter里面,而后者在插入值大于原来的最末值时,直接换了过来。然后缩小index,或者说,j值,继续比较替换后数字





Merge Sort

原创粉丝点击