快速排序,插入排序,折半插入排序,選擇排序,氣泡排序,歸併排序,堆排序
//
// main.c
// sort
//// created by yingjun on 2020/4/26.
//#include
#define max 13
#include
/** 交換兩個值
*/void
swap
(int
*a,int
*b)/**
列印陣列
*/void
printarray
(int arr,
int length)
}/**
插入排序
1,元素基本有序
2,元素個數比較少
*/void
insertsort
(int arr,
int length)
arr[j]
= temp;}}
/** 折半插入排序(二分插入排序)
*/void
binaryinsertsort
(int arr,
int length)
else
}int temp=arr[i]
;for
(int j=i;j>low; j--
) arr[low]
=temp;}}
/** 希爾排序
*/void
shellsort
(int arr,
int length)
arr[j + gap]
= temp;}}
}/**
氣泡排序
*/void
bubblesort
(int arr,
int length)}}
}/**
選擇排序
*/void
selectsort
(int arr,
int length)
}swap
(&arr[i]
,&arr[minindex]);
}}/** 快速排序
*/void
quicksort
(int arr,
int start,
int end)
if(i//從左往右找比基準數大的
while
(iif(i} arr[i]
=temp;
quicksort
(arr, start, i-1)
;quicksort
(arr, i+
1, end);}
}/**
合併方法
*/void
merge
(int arr,
int start,
int end,
int mid,
int*temp)
else
}//剩餘的i序列的數放入輔助空間
while
(i_start<=i_end)
//剩餘的j序列的數放入輔助空間
while
(j_start<=j_end)
//輔助空間的資料覆蓋到原空間
for(
int i=
0;i/** 歸併排序
*/void
mergesort
(int arr,
int start,
int end,
int*temp)
int mid=
(start+end)/2
;//分組
//左半邊
mergesort
(arr, start, mid, temp)
;//右半邊
mergesort
(arr, mid+
1, end, temp)
;//合併
merge
(arr,start,end,mid,temp);}
void
myswap
(int arr,
int a,
int b)
/** 調整陣列
@param arr 待調整的陣列
@param index 待調整的節點的下標
@param length 陣列的長度
*/void
heapajust
(int arr,
int index,
int length)
if(rchild>arr[max])if
(max!=index)
}/**
堆排序*/void
heapsort
(int arr,
int length)
//交換堆頂元素和最後乙個元素
for(
int i=length-
1; i>=
0; i--)}
intmain
(int argc,
const
char
* ar**)
;heapsort
(arr, max)
;printarray
(arr,13)
;free
(temp)
;return0;
}
各類排序演算法
快速排序 void quicksort int data,int low,int high if a k a i 冒泡法 void maopao int a,int num num元素個數 歸併排序 插入排序 include stdafx.h includeusing namespace std d...
各類排序演算法比較
排序演算法 重點時間複雜度 穩定性直接插入排序 將待插入元素插入到已有序序列中的某個合適位置,得到新有序序列 最壞情況下o n n y折半插入排序 在決定當前元素插入位置時不採用插入查詢的方式,而是二分查詢 相比直接插入,比較的次數明顯減半,但移動的次數沒有減少。所以還是o n n y二路插入排序 ...
各類排序演算法的比較 摘抄
按平均時間將排序分為四類 1 平方階 o n2 排序 一般稱為簡單排序,例如直接插入 直接選擇和氣泡排序 2 線性對數階 o nlgn 排序 如快速 堆和歸併排序 3 o n1 階排序 是介於0和1之間的常數,即0 1,如希爾排序 4 線性階 o n 排序 如桶 箱和基數排序。各種排序方法比較 簡單...