C 排序演算法

2021-10-08 22:24:29 字數 3410 閱讀 5327

基數排序(counting sort)

木桶排序(bucket sort)

基數排序(radix sort)

引用

例說資料結構&stl

十大經典排序演算法(**演示)

菜鳥教程

排序演算法總結

海量資料處理 - 10億個數中找出最大的10000個數(top k問題)

海量資料排序——如果有1tb的資料需要排序,但只有32gb的記憶體如何排序處理?

【動態規劃】求陣列不相鄰元素之和最大

void

insert_sort

(int arr,

int len)}}

//改進演算法

void

insert_sort

(int arr,

int len)

}//再改進

void

insert_sort

(int arr,

int len)

希爾排序演算法是一種改進的插入排序演算法。

void

shell_sort

(int arr,

int len)

}//實現2

void

shell_sort

(int arr,

int len)}}

}

**歸併排序

void

merge_sort

(int arr,

int len)

void

sort

(int arr,

int left,

int right,

int*temp)

}void

merge

(int arr,

int left,

int mid,

int right,

int*temp)

while

(i <= mid)

temp[n++

]= arr[i++];

while

(j <= right)

temp[n++

]= arr[j++];

for(

int i =

0; i < n; i++

)//std::cout << std::endl;

}

快速排序

void

quick_sort

(int arr,

int left,

int right)

while

(i < j&&arr[i]

< x)

i++;if

(i < j)

} arr[i]

= x;

quick_sort

(arr, left, i -1)

;quick_sort

(arr, i +

1, right);}

}

堆的性質:

堆的常用方法:

#include

#include

#define init_size 2

class

heap

// heap(int num);

~heap()

;void

push_heap

(int target)

;int

top_heap

(int

& target)

;int

get_size()

const

;heap

(const heap& heap)

=delete

; heap operator=(

const heap& heap)

=delete

;private

:int size;

int free;

//int length;

public

:int

* ptr;};

heap::

~heap()

void heap::

push_heap

(int target)

int i = size;

//最後乙個節點的父節點為(i - 1)/ 2

ptr[size]

= target;

size++

;//最後乙個節點的父節點為 size / 2 - 1

free--;if

(i >0)

else

break;}

}}int heap::

top_heap

(int

&target)

else

}while

(i < size)

size--

; free++;if

((free + size)

> init_size && free >

2* size)

return0;

}int heap::

get_size()

const

intmain()

; int* p2 = new int[4];

memcpy(p2, p1, 2*sizeof(int));

for (int i = 0; i < 2; i++)

cout << p2[i] << ' ';

cout << endl;

*/ cout <<

"raw: "

;for

(int i =

0; i <

6; i++

) cout << endl;

cout <<

"heap: "

;int size = heap.

get_size()

;for

(int i =

0; i < size; i++

) cout <<

(heap.ptr)

[i]<<

' ';

cout << endl;

int x;

cout <<

"top_heap: "

;for

(int i =

0; i < size; i++)

cout << endl;

//cout << "size = " << heap.get_size() << endl;

return0;

}

演算法步驟

基數排序

演算法的步驟如下:

C 排序演算法

最基本的 氣泡排序 c code using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for intm 0 m iarrary.le...

C 排序演算法

protected int bubbleup int array 氣泡排序 return array public int selectionsorter int list 選擇排序 int temp list min list min list i list i temp return list ...

C 演算法排序

不廢話,上 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 排序演算法 陣列 氣泡排序 選則排序 arra...