二分法:
平均时间复杂度:O(log2n)
int halfFuntion(int a[], int length, int number)
 {
int start = 0;
int end = length - 1;
int index = 0;
while(start < end)
 {
index = start + (end - start)/2
if(a[index] == number){
return index;
 } else if(a[index] < number){
start = index + 1;
 } else{
end = index - 1;
 }
 }
return index;
 }
 
 
冒泡排序:

/**

 平均时间复杂度:O(n2)

 

 空间复杂度:O(1)  (用于交换)

 

 稳定性:稳定

 */

void paoFuntion(int a[], int length){

    for (int i = 0; i < length - 1; i++) {

        for (int j = 0; j < length - 1 - i; j++) {

            if (a[j] > a[j+1]) {

                int temp = a[j];

                a[j] = a[j+1];

                a[j+1] = temp;

            }

        }

    }

}

 
 
选择排序:

/**

 平均时间复杂度:O(n2)

 

 空间复杂度:O(1)  (用于交换和记录索引)

 

 稳定性:不稳定 (比如序列【5, 5, 3】第一趟就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)

 */

void chooseFuntion(int a[],int length){

    for (int i = 0; i < length - 1; i++) {

        for (int j = i + 1; j < length ; j++) {

            if (a[i] > a[j]) {

                int temp = a[j];

                a[j] = a[i];

                a[i] = temp;

            }

        }

    }

}

 

快排:点击打开链接

http://blog.csdn.net/niejiafa_131/article/details/44807653

iOS常见算法(二分法 冒泡 选择 快排)的更多相关文章

  1. 排序算法C语言实现——冒泡、快排、堆排对比

    对冒泡.快排.堆排这3个算法做了验证,结果分析如下: 一.结果分析 时间消耗:快排 < 堆排 < 冒泡. 空间消耗:冒泡O(1) = 堆排O(1) < 快排O(logn)~O(n) ...

  2. 冒泡,快排算法之javascript初体验

    引子:javascript实际使用的排序算法在标准中没有定义,可能是冒泡或快排.不用数组原生的 sort() 方法来实现冒泡和快排. Part 1:冒泡排序(Bubble Sort) 原理:临近的两数 ...

  3. 【PHP数据结构】交换排序:冒泡、快排

    上篇文章中我们好好地学习了一下插入类相关的两个排序,不过,和交换类的排序对比的话,它们真的只是弟弟.甚至可以说,在所有的排序算法中,最出名的两个排序都在今天要介绍的交换排序中了.不管是冒泡.还是快排, ...

  4. javascript高级排序算法之快速排序(快排)

    javascript高级排序算法之快速排序(快排)我们之前讨论了javascript基本排序算法 冒泡排序 选择排序 插入排序 简单复习: 冒泡排序: 比较相邻的两个元素,如果前一个比后一个大,则交换 ...

  5. Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等

    本文就是介绍一些常见的排序算法.排序是一个非常常见的应用场景,很多时候,我们需要根据自己需要排序的数据类型,来自定义排序算法,但是,在这里,我们只介绍这些基础排序算法,包括:插入排序.选择排序.冒泡排 ...

  6. Java排序算法 [选择、冒泡、快排]

    选择排序: 简述:从数组的第一个元素开始,依次与其他所有的元素对比,如果比自身大或小(取决于升序或降序)交换位置. package com.sort; import java.util.Arrays; ...

  7. Java实现的各种排序算法(包括冒泡,快排等)

    //堆排序 不稳定 import java.util.Arrays; public class HeapSort { public static void main(String[] args) { ...

  8. 《算法导论》——随机化快排RandomizedQuickSort

    今日算法:随机化快排RandomizedQuickSort 基础工作swap交换和partition分治 /* *交换数组的两个元素 *fromIndex和toIndex为要交换的两个元素的索引 */ ...

  9. python 冒泡和快排,不多说【无聊】

    #-*-coding:utf8-*- import random a=[] b=[] def init_array(): for i in range(10000): v = random.randi ...

随机推荐

  1. MyBatis的初始化方式

    1. 加载配置文件 public static void main(String[] args) throws IOException { //mybatis的配置文件 String resource ...

  2. tensorflow的安装

    binary安装(推荐) 注意需要能访问外网 Install pip (or pip3 for python3) if it is not already installed: # Ubuntu/Li ...

  3. 将Linux下的Android签名对pk8和pem转换为Eclipse下的签名(keystore)

    一 在github上下载工具 https://github.com/getfatday/keytool-importkeypair 二 将工具在Linux环境下解压或者解压后Copy到Linux下,运 ...

  4. Linux 安装基于(PHP5.5)memcache扩展

    一. memcache服务器端 下载地址:http://memcached.org/ 安装memcached,同时需要安装中指定libevent的安装位置 tar zxvf memcached-1.2 ...

  5. [译]:Orchard入门——使用WebMatrix管理Orchard网站

    原文链接:Working with Orchard in WebMatrix WebMatrix--微软一站式Web开发工具,包括网站的创建.编辑以及发布--不过现在微软更推荐VS code .Web ...

  6. 已解决:ECSHOP安装出现date_default_timezone_get()问题

    今天在安装ECSHOP时遇到警告如下: Warning: date_default_timezone_get(): It is not safe to rely on the system's tim ...

  7. HDU - 3948 后缀数组+Manacher

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3948 题意:给定一个字符串,求字符串本质不同的回文子串个数. 思路:主要参考该篇解题报告 先按照man ...

  8. bootstrap 使用需注意的一些点

    table 中td的宽度可以td 的style设置,然后在设置内部比如img对象款高实现对于 table其中某列的设置.

  9. 网友分享 调用dll的语音朗读 不能变速,不好

    调用   speeker.dll   这个文件被本人 放在文件里面,若有人需要可以 联系我 需要 mfc100ud.dll msvcr100d.dll 注:可以用D7 自带的ActiveX 里面的控件 ...

  10. Educational Codeforces Round 12 E Beautiful Subarrays

    先转换成异或前缀和,变成询问两个数异或≥k的方案数. 分治然后Trie树即可. #include<cstdio> #include<algorithm> #define N 1 ...