算法
字正腔圆
你永远不知道你努力了之后,会是怎样...
展开
-
非稳定排序之快排的实现及自测【思维模型很重要】
算法,感觉思维模型比较重要对比std::sort。。。的比较输出, 发现std::sort 底层并不是或不完全是快排实现#include <stdio.h>#include <algorithm>//前闭,后开void quicksort(int start, int end, int* a){ if (start+1 >= end) { //只有一个数据或数据单方向偏 return; } //printf("start:%...原创 2020-10-09 15:51:51 · 83 阅读 · 0 评论 -
Insert Sort 插入排序
/** 插入排序,从小到大* 假定第一个是最小的,后面的值依次与前面的值从右往左比较,如果后面的小就把前面的值填到自己的位置* 并重复继续往左比较(否则不动,继续下一个值判断),直到找到比自己小的值,把自己的值填到其后面**时间复杂度 最好O(n) 最坏O(n^2) 平均还是O(n^2)*稳定性:稳定*原地排序:是*排序 n-1趟*/void insertSort(int src[], int len){ //4, 6, 6, 1, 3 -> //1 ...原创 2020-05-10 18:25:43 · 215 阅读 · 0 评论 -
Select Sort 选择排序
/**时间复杂度O(n2)*稳定性:非稳定排序算法*排序 n-1趟*/void selectSort(int src[], int len){ register int i; register int j, minIdx, temp; ////假定第i个是最小数的下标,对比后面的数据,如果有更小的更新minIdx下标,最后切换minIdx和i下标的值 for(i=0; i<len-1; i++){ minIdx = i; f...原创 2020-05-10 16:52:04 · 197 阅读 · 0 评论 -
Bubble Sort (冒泡排序)
/** 时间复杂度O(n2)* 稳定性:稳定排序算法* 排序 n-1趟*/void bubbleSort(int src[], int len){ //3 2 1 -> n-1趟 //----- //1 3 2 //1 2 3 int i = 0; for(; i<len-1; i++){//n-1趟 //for(int i=0; i<len-1; i++){//n-1趟 bool end = true;...原创 2020-05-10 15:33:11 · 163 阅读 · 0 评论