咸阳做网站价格,贵州建设厅网站怎样查询电工证,微机课做网站,网络营销岗位技能一、为什么学了之后过段时间又会忘记了#xff1f; 因为没有去运用它和认为面试需要而没有真正的重视。现在给它赋予意义#xff1a;1.那就是基础牢固#xff0c;才可触类旁通2.真正记得和随时可以拿出手#xff0c;那么面试可以PK掉一大批人。不然看到一个精妙的算法就学一…一、为什么学了之后过段时间又会忘记了 因为没有去运用它和认为面试需要而没有真正的重视。现在给它赋予意义1.那就是基础牢固才可触类旁通2.真正记得和随时可以拿出手那么面试可以PK掉一大批人。不然看到一个精妙的算法就学一个永远只是学到某一个而没有自己的思维在里面。 二、选择排序算法代码 #include iostream
using namespace std;void selectionSort(int arr[],int n){for (int i 0; i n; i){int minIndex i; //寻找i~n中的最小值然后进行位置的转换for (int j i 1; j n; j){if ( arr[j] arr[minIndex] ){minIndex j;}swap(arr[i], arr[j]);}}
}int main(int argc, const char * argv[]) {int a[10] {10,9,8,7,6,5,4,3,2,1};selectionSort(a,10);for( int i 0 ; i 10 ; i )couta[i] ;coutendl;return 0;
} 核心思想每次都是去找到最小的值。 三、插入排序算法代码 //插入排序
templatetypename T
void insertionSort(T arr[],int n){//因为第0个元素不需要比较直接从下标为1的元素开始比较for (int i 1; i n; i) {for (int j i; j 0; j--) {if (arr[j] arr[j-1]) {swap(arr[j], arr[j-1]);}else break;}}
} 思路插入排序从下标为1的元素开始和它前面的元素进行相比小就换位置大就退出循环。从下标为2的元素开始... 比如 8、6、2、3、1、5、7、4 先变成 6、8、2、3、1、5、7、4然后用2和它之前的数进行比较。。。 四、插入排序算法改进 一次交换就是3次赋值。改进就是改进交换每次比较后只交换一次。 //改进版插入排序templatetypename T
void insertionExcellentSort(T arr[],int n){for (int i 1; i n; i) {T e arr[i];int j;for ( j i; j 0 arr[j-1] e; j--) {arr[j] arr[j-1];}arr[j] e;}
} 转载于:https://www.cnblogs.com/yuhui-snail/p/8521340.html