冒泡排序,选择排序,快速排序

 

1.冒泡排序

冒泡排序(Bubble Sort) 最为简单的一种排序,通过重复走完数组的所有元素,通过打擂台的方式两个两个比较,直到没有数可以交换的时候结束这个数,再到下个数,直到整个数组排好顺序。因一个个浮出所以叫冒泡排序。双重循环时间O(n^2)
void BubbleSort ( int arr[] , int len ){  //冒泡排序算法 
	
	if(arr==NULL||len<=0)
    {
        return ;
    }
	int temp;
        bool isSorted = false;
	for(int i=0; i arr[j+1]){
                               isSorted = false; 
				temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
	print(arr,len);
}
 

2.选择排序

选择排序(Select Sort) 是直观的排序,通过确定一个Key最大或最小值,再从带排序的的数中找出最大或最小的交换到对应位置。再选择次之。双重循环时间复杂度为O(n^2)
void SelectSort( int arr[], int len){   // 选择排序 
	if(arr==NULL||len<=0)
    {
        return ;
    }
    for( int i=0; i arr[j]){
    			int temp= arr[j];
    			arr[j] = MinKey;
    			MinKey = temp;
			}
		}
		arr[i]=MinKey;
	}
    
    print(arr,len);
    
} 
 

3.快速排序

int compInc(const void *a, const void *b)   //快排递增 
{  
    return *(int *)a - *(int *)b;  
}  
 
int compDec(const void *a, const void *b)  //快排递减 
{  
   return *(int *)b - *(int *)a;  
} 
通过使用qsort(数组名,长度,sizeof(第一个数长度),compInc/comoDec) 进行实现数组的排序
 
 
  
~~~~~~~~~~~~
 
其他排序会根据学的增加进行补充
~~~~~~~~~~~
 
 
 
 

你可能感兴趣的:(C/C++)