NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

1.氣泡排序
氣泡排序(Bubble Sort) 最為簡單的一種排序,通過重複走完陣列的所有元素,通過打擂臺的方式兩個兩個比較,直到沒有數可以交換的時候結束這個數,再到下個數,直到整個陣列排好順序。因一個個浮出所以叫氣泡排序。雙重迴圈時間O(n^2)
void BubbleSort ( int arr[] , int a ){  //氣泡排序演算法 
if(arr==NULL||a<=0)
{
return ;
}
int temp;
for(int i=0; i< a; i   )
for(int j=i 1; j<a; j  )
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
print(arr,a);
}
2.選擇排序
選擇排序(Select Sort) 是直觀的排序,通過確定一個Key最大或最小值,再從帶排序的的數中找出最大或最小的交換到對應位置。再選擇次之。雙重迴圈時間複雜度為O(n^2)
void SelectSort( int arr[], int a){   // 選擇排序 
if(arr==NULL||a<=0)
{
return ;
}
for( int i=0; i<a; i  ){
int MinKey=	arr[i];
for(int j=i ; j<a; j  ){
if(MinKey>arr[j]){
int temp= arr[j];
arr[j]=MinKey;
MinKey=temp;
}
}
arr[i]=MinKey;
}
print(arr,a);
} 

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) 進行實現陣列的排序

  
~~~~~~~~~~~~
其他排序會根據學的增加進行補充
~~~~~~~~~~~
#include<iostream>
#include<cstdlib>
using namespace std;
void print(int arr[], int a){
for (int i=0; i<a ; i   )
cout << arr[i] << " ";
cout <<endl;
}
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;  
}  
void BubbleSort ( int arr[] , int a ){  //氣泡排序演算法 
if(arr==NULL||a<=0)
{
return ;
}
int temp;
for(int i=0; i< a; i   )
for(int j=i 1; j<a; j  )
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
print(arr,a);
}
void SelectSort( int arr[], int a){   // 選擇排序 
if(arr==NULL||a<=0)
{
return ;
}
for( int i=0; i<a; i  ){
int MinKey=	arr[i];
for(int j=i ; j<a; j  ){
if(MinKey>arr[j]){
int temp= arr[j];
arr[j]=MinKey;
MinKey=temp;
}
}
arr[i]=MinKey;
}
print(arr,a);
} 
int  main()
{
int arr[10];
for(int i=0; i<10; i   )
cin >>arr[i];
cout << endl;
BubbleSort(arr,10);
cout << endl;
cout << endl;
SelectSort(arr,10);
cout << endl;
cout << endl;
qsort(arr,10,sizeof(arr[0]),compInc);
print(arr,10);
qsort(arr,10,sizeof(arr[0]),compDec);
print(arr,10);
return 0;
}

相關文章

程式語言 最新文章