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