简单排序算法以及其复杂度

Posted jason-linkstart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单排序算法以及其复杂度相关的知识,希望对你有一定的参考价值。

 选择排序,时间复杂度 O(n^2),
下面要注意
c语言传参入数组传入的是地址!,所以用sizeof求数组大小的时候,在自定义函数中求出来的sizeof(arr)就是指针的大小,为4;64位系统的话是8;
所以要在main函数中传入自定义方法给数组大小
 1 #include <stdio.h>
 2 #define arrSize(arr) sizeof(arr)/sizeof(arr[0])
 3 void SelectSort(int arr[],int arrsize){
 4     for(int i=0;i<arrsize;i++){
 5         int k = i;                     //对比数组最小的下标,进行交换 
 6         for(int j=i;j<arrsize;j++){
 7             if (arr[k]>arr[j]){
 8                 k = j;    
 9             }
10         }
11         if(k!=i){
12         int temp = arr[i];
13         arr[i]=arr[k];
14         arr[k]=temp;    
15         }
16     }
17 }
18 int main(){
19     int arr[] = {12,312,41,35,344,12,5};
20     int arrsize = arrSize(arr); //c语言传参入数组传入的是地址! 
21     SelectSort(arr,arrsize); 
22     for(int i=0;i<arrsize;i++){
23         printf("%d ",arr[i]);
24     }
25 } 

 

以上是关于简单排序算法以及其复杂度的主要内容,如果未能解决你的问题,请参考以下文章

FFT的最优算法是啥?以及其代码(C语言),谢谢!

算法排序02——归并排序介绍及其在分治算法思想上与快排的区别(含归并代码)

堆排序原理及其js实现

常见比较排序算法的比较

整理常见排序算法及其时间复杂度总结

计数排序及其时间复杂度代码(C++实现)应用场景