![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
瀛洲客
海纳百川,有容乃大;壁立千仞,无欲则刚
展开
-
C++ 插入排序
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 具体代码如下:#include "stdafx.h"#include <iostream>using namespace std;void Insert_sort(int a[],int iSize){ for(int j=1;j<iSize;j++) { i...原创 2018-03-01 11:38:57 · 231 阅读 · 0 评论 -
二分查找算法C++ 实现
二分法查找的前提是:数组是有序的 二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 6, 7, 9, 23, 34, 36, 45, 69},查找元素36,用二分查找的算法执行的话,其顺序为: 1.第一步查找中间元素,即23,...原创 2018-03-01 15:34:54 · 592 阅读 · 0 评论 -
冒泡排序及其优化
冒泡排序,顾名思义,就是重的往下沉,轻的往上冒;是大家再熟悉不过的排序算法。首先我们看一般的冒泡排序,具体代码如下:#include“stdafx.h”#include <stdlib.h>void swap(int* a,int *b){ int temp = *a; *a = *b; *b = temp;}void bubble_sort(...原创 2018-03-01 17:36:29 · 136 阅读 · 0 评论 -
选择排序算法
选择排序的思想:固定位置找元素,即先找到数组中最小的,放在第一个位置,在找剩余元素中最小的,放在第二个位置……直到所有数据都有序排列。这与插入排序算法的思想(固定元素找位置)恰恰相反。具体的C++代码实现如下:#include“stdafx.h”#include <stdlib.h>void choose_sort(int*a,int iSize){ for(int i=...原创 2018-03-01 18:04:41 · 114 阅读 · 0 评论 -
字符串的拷贝与内存拷贝
字符串拷贝的实现:char* strcpy(char*dest,const char*src){ if(src == NULL)|| dest == NULL) { return NULL; } char* strDest = dest; char* strSrc = src; ...原创 2018-03-01 18:23:07 · 665 阅读 · 0 评论 -
基本排序之快速排序
快速排序的思想是以数组中某一个元素为参照(通常是数组第一个元素),将比它大的数放在它后面,比它小的数放在它前面;这样,就相当于把原来要排序的数组分成了两部分,之后再对该两个分数组分别执行上述过程,直到将数组全部排序好为止。快速排序算法的时间复杂度为O(nlogn);它是一种不稳定排序算法,因为当数组中有相同元素时,算法对相同元素的处理方式不止一种。具体代码如下:#include<iostre...原创 2018-03-06 14:51:46 · 144 阅读 · 0 评论 -
基本排序之堆排序
聪明人做事通常以结果为导向,故先说一下堆排序的应用场景:用于处理优先级队列或类似于优先级队列的相关问题,比如要返回最大或最小元素,或只有有限插入要求等。堆(heap),一种数据结构,逻辑上是一棵完全二叉树,存储上是一个数组对象 (二叉堆),满足的条件是:所有非叶子结点的值均不大于或均不小于其左、右孩子结点的值。堆排序的思想如下:利用heap这种数据结构(所有非叶子结点的值均不大于或均不小于其左、右...原创 2018-03-06 16:50:00 · 159 阅读 · 0 评论