第二課 複雜排序演算法

2021-10-21 16:40:45 字數 2844 閱讀 2155

1.歸併排序

public

static

void

mergesort

(int

arr)

mergesort

(arr,

0,arr.length-1)

;}public

static

void

mergesort

(int

arr,

int l,

int r)

int mid=l+

(r-l)/2

;mergesort

(arr,l,mid)

;mergesort

(arr,mid+

1,r)

;merge

(arr,l,mid,r);}

public

static

void

merge

(int

arr,

int l,

int m,

int r)

else}if

(left1==m+1)

}if(left2==r+1)

}for

(int j=

0;j)}

2.荷蘭國旗問題

1)小於等於的放左邊,大於的放右邊

private

static

void

sort

(int

test,

int i,

int length,

int num)

}printarray

(test)

;}

2)小於的放左邊,等於的放中間,大於的放右邊

public

static

int[

]partition

(int

arr,

int l,

int r,

int num)

else

if(arr[l]

>num)

else

}return arr;

}

3.快速排序

public

static

void

quicksort

(int

arr)

quicksort

(arr,

0,arr.length-1)

;}public

static

void

quicksort

(int

arr,

int l,

int r)

}public

static

int[

]partition

(int

arr,

int l,

int r)

else

if(arr[l]

>arr[r]

)else

}swap

(arr,l,r)

;//注意這裡是要交換的

return

newint

;//注意返回的是less

}public

static

void

swap

(int

arr,

int i,

int j)

4.堆排序

public

static

void

heapsort

(int

arr)

//建堆方式一

// for (int heapsize=0;heapsize

// heapinsert(arr,heapsize);

// }

//建堆方式二

for(

int i=

(arr.length-2)

/2;i>=

0;i--

)for

(int i=arr.length-

1;i>

0;i--)}

//每新增乙個元素都跟他的父節點比較,直到根或者不大於父節點

public

static

void

heapinsert

(int

arr,

int index)

while

(index !=

0&& arr[index]

> arr[

(index-1)

/2])

}//該節點和子節點相比較

public

static

void

heapify

(int

arr,

int index,

int size)

else

larger=arr[larger]

>arr[index]

?larger:index;

if(larger==index)

swap

(arr, index, larger)

; index = larger;

left=index*2+

1;}}

public

static

void

swap

(int

arr,

int i,

int j)

第二課 氣泡排序

quote 筆記 氣泡排序 quote b 1.氣泡排序類 b package com.flysnow.chap03 氣泡排序 author 飛雪無情 since 2010 3 25 public class arraybub 插入元素 param value public void insert ...

第二課 安裝PHP

為什麼要安裝php?php是伺服器端解析程式,一般執行在網路伺服器上。而編寫php語言的程式我們一般是在自己的個人電腦上完成,然後拿到伺服器上除錯。所以,學習php首先要讓我們的個人電腦模擬伺服器執行環境,讓php能象在伺服器上一樣在我們的個人電腦上執行。這就是為什麼要安裝配置php的原因。安裝配置...

csdn之旅 第二課

1.html標題的標籤 1 注意 只能到,在往後就沒有作用了。2 標籤特點 可以區別其他文字,比如可以加粗 效果圖如 笑對生活!笑對生活!笑對生活!笑對生活!改變字型大小 可以自動換行 2.html段落標記 用元素 注意 標籤和標籤之間的關係 可以巢狀使用 但不可以交叉 3.html常用標記 單標記...