一、C++与C语言的比较
1、头文件
C C++
#include<stdio.h> #include<cstdio>
#include<math.h> #include<cmath>
#include<string.h> #include<cstring>
2、语法
C++ C
#include<iostream> #include<stdio.h>
using namespace std;
3、输入,输出
C C++
输出 输出
printf("xxx%x\n",x); cout<<"xxx"<<x<<endl;
输入 输入
scanf("%x",&x); cin>>x;
二、排序算法
三、插入排序
1、思想
把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。
2、算法描述
3、核心代码
template <class T>
void insertSort(T& arr) {
int len = sizeof(arr)/sizeof(arr[0]); //数学思想,总大小/单个元素的大小=数组的长度(元素个数)
int preIndex,current;
for(int i=1;i<len;i++){
preIndex=i-1; //已排序序列的最后一个元素的下标
current=arr[i]; //当前待排元素的值
while (preIndex>=0&&arr[preIndex]>current) {
arr[preIndex+1]=arr[preIndex];
preIndex--;
}
arr[preIndex+1]=current;
}
}
四、选择排序
1、思想
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始(末尾)位置,然后选出次小(或次大)的一个元素,存放在最大(最小)元素的下一个位置,重复这样的步骤直到全部待排序的数据元素排完。
2、算法描述
3、核心代码
template <class T>
void insertSort(T&arr){
int len=sizeof(arr)/sizeof(arr[0]);//总大小/单个元素的大小=数组长度(元素个数)
int minindex,temp;
for(int i=1;i<len-1;i++){
minindex=i;
for(int j=i+1;j<len;j++){
if(arr[j]<arr[minindex]){//寻找最小的数
minindex=j;//将最小数的索引保存
}
}
temo=arr[i];
arr[i]=arr[minindex];
arr[minindex]=temp;
}
}
五、冒泡排序
1、思想
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端
2、算法描述
3、核心代码
template <class T>
void insertSort(T&arr){
int len=sizeof(arr)/sizeof(arr[0]);//总大小/单个元素的大小=数组长度(元素个数)
int minindex,temp;
for(int i=0;i<len-1;i++){
for(int j=0;j<len-1-i;j++){
if(arr[j]>arr[j+1]){//相邻元素两两相比
int temp=arr[j+1];//元素交换
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}