算法
清沐_1412
这个作者很懒,什么都没留下…
展开
-
全排列问题与n皇后问题
先占坑#include<cstdio>const int maxn = 11;int n, p[maxn], hashTable[maxn] = { false };void generateP(int index){ if (index == n + 1){ for (int i = 1; i <= n; i++) { prin原创 2017-08-11 21:00:35 · 505 阅读 · 0 评论 -
简单算法---排序
冒泡排序的本质在于交换,通过交换的方式把当前剩余元素的最大值移动到一侧,剩余元素减少为0时,排序结束。#include<cstdio>/** 冒泡排序*/int main(){ int a[10] = { 2, 5, 3, 6, 7, 9, 1, 5, 4, 8 }; for (int i = 0; i < 9; i++) //十个元素,进行n-1趟 {原创 2017-08-09 23:09:25 · 270 阅读 · 0 评论 -
随机选择算法
问题描述:本文主要讨论这样一个问题:如何从一个无序的数组中求出第k大的数。这个问题最直接的想法是对数组排一下序,然后直接取出第k个元素即可,这样做法需要O(nlogn)的时间复杂度。(这个方法比较简单,在运行时间允许的情况下当然选这个方法)下面介绍随机选择算法,它对任何输入都可以达到O(n)的期望时间复杂度。基本思想:随机选择算法的原理类似于随机快速排序算法。当对A[left,ri原创 2017-08-29 20:23:10 · 9468 阅读 · 1 评论