算法
蜗牛love天空
探索知识,提升技术。把所学的知识,融会贯通,实现学以致用。
展开
-
浅析“快速排序”算法
#include <iostream>// 全局数组(方便监控内存)int g_array[10] = {6, 1, 2, 7, 9, 10, 4, 5, 10, 8};void QuickSort(int target_array[], int left, int right){ int i = left; // 左边起始索引 int j = right; /...原创 2019-04-04 00:05:05 · 215 阅读 · 0 评论 -
题目:删除排序数组的重复项
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。cl...原创 2019-05-02 18:41:53 · 152 阅读 · 0 评论 -
题目:买卖股票的最佳时间II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交...原创 2019-05-03 19:17:39 · 498 阅读 · 0 评论 -
堆排序
STL模板,实现的堆排序功能// range heap example#include <iostream>#include <algorithm> // std::make_heap, std::pop_heap, std::push_heap, std::sort_heap#include <vector>int main(){ int m...原创 2019-04-19 15:53:57 · 202 阅读 · 0 评论 -
算法:strcpy,strcat,strcmp的实现
// strcat的实现char * strcat(char * dest, char * src){ assert(dest && src); char * ret = dest; // 找到dest的'\0'结尾符 while(*dest){ dest++; } // 拷贝(while循环退出时,将结尾符'\0'也做了拷贝 while(*dest++ = *...原创 2019-05-10 12:36:38 · 476 阅读 · 0 评论 -
算法:vector的erase实现,map的erase应用
// vector的erase的实现void erase(unsigned int pos){ if(pos < theSize){ // 注意:"--theSize" 比 "theSize--" 效率更高 --theSize; for(unsigned int i = pos; i< theSize; ++i){ array[i] = array[i+1]; ...原创 2019-05-10 16:23:56 · 797 阅读 · 0 评论