1.插入排序
void
insertsort
(int
* arr,
int size)
else
} arr[end +1]
= tmp;
}}
2.希爾排序void
shellsort
(int
* arr,
int size)
else
} arr[end + gap]
= tmp;}if
(gap ==1)
}}
3.選擇排序int
swap
(int
* a,
int* b)
void
selectsort
(int
* arr,
int size)
if(arr[max]
< arr[i])}
swap
(&arr[begin]
,&arr[min]);
if(begin == max)
min = max;
swap
(&arr[end]
,&arr[max]);
begin++
; end--;}
}
4.堆排序int
swap
(int
* a,
int* b)
void
adjustdown
(int
* a,
int n,
int root)
if(a[parent]
< a[child]
)else}}
void
heapsort
(int
* a,
int n)
int end = n -1;
while
(end >0)
}
5.氣泡排序int
swap
(int
* a,
int* b)
void
bubblesort
(int
* a,
int n)}if
(!flag)
break;}
}
6.快速排序int
swap
(int
* a,
int* b)
//防止因為資料本來就有序,導致時間複雜度過大
intgetmidindex
(int
* a,
int begin,
int end)
else
}//左右指標法
intpartsort
(int
* a,
int begin,
int end)
while
(begin < end && a[end]
>= key)
swap
(&a[begin]
,&a[end]);
}swap
(&a[begin]
,&a[keyindex]);
return begin;
}//挖坑法
intpartsort2
(int
* a,
int begin,
int end)
a[end]
= a[begin]
;while
(begin < end && a[end]
>= key)
a[begin]
= a[end];}
a[begin]
= key;
return begin;
}//前後指標法
intpartsort3
(int
* a,
int begin,
int end)
cur++;}
++prev;
swap
(&a[prev]
,&a[end]);
return prev;
}void
quicksort
(int
* a,
int begin,
int end)
7.歸併排序void
_mergesort
(int
* a,
int begin,
int end,
int* tmp)
if(begin1 <= end1)
}else
}memcpy
(a + begin, tmp + begin,
sizeof
(int)*
(end - begin +1)
);}void
mergesort
(int
* a,
int n)
8.計數排序void
countsort
(int
* a,
int n)
int range = max - min +1;
int* countarr =
(int*)
malloc
(sizeof
(int
)* range)
;memset
(countarr,0,
sizeof
(int
)*range)
;for
(int i =
0; i < n; i++
)int j =0;
for(
int i =
0; i < range;i++)}
}
八大排序演算法的C 實現
include stdafx.h include include include include using namespace std void print vectornumv 輸出陣列 numv.at j 1 v return numv vectorselectionsort vectornu...
八大排序演算法
1.直接插入排序 原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。實現 void insertsort node l,int length void shell ...
八大排序演算法
一 概述 八大排序演算法包括 1 插入排序之直接插入排序 straight insertion sort 2 插入排序之希爾排序 shells sort 3 選擇排序之簡單選擇排序 selection sort 4 選擇排序之堆排序 heap sort 5 交換排序之氣泡排序 bubble sort...