iOS常见算法(二分法 冒泡 选择 快排)

Posted NSSong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS常见算法(二分法 冒泡 选择 快排)相关的知识,希望对你有一定的参考价值。

二分法:
平均时间复杂度: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常见算法(二分法 冒泡 选择 快排)的主要内容,如果未能解决你的问题,请参考以下文章

几种常见的排序算法分析学习

常见排序算法基本原理及实现(快排,归并,堆排,直接插入.....)

常见排序算法基本原理及实现(快排,归并,堆排,直接插入.....)

常见排序算法基本原理及实现(快排,归并,堆排,直接插入.....)

数据结构八大排序算法(经典)

常见的排序算法