C 快速排序法 氣泡排序法 二分查詢法

2021-08-30 23:58:59 字數 2957 閱讀 7281

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 排序法

;//待排序陣列

quicksort

(arr,

0, arr.length -1)

;//呼叫快速排序函式。傳值(要排序陣列,基準值位置,陣列長度)

//控制台遍歷輸出

console.

writeline

("排序後的數列:");

foreach

(int item in arr)

console.

writeline

(item)

; console.

readline()

;}private

static

void

quicksort

(int

arr,

int begin,

int end)

private

static

intquicksort_once

(int

arr,

int begin,

int end)

arr[i]

= arr[j]

;//執行到此,j已指向從右端起第乙個小於基準pivot的元素,執行替換

//從左到右,尋找首個大於基準pivot的元素

while

(arr[i]

<= pivot && i < j)

arr[j]

= arr[i]

;//執行到此,i已指向從左端起首個大於基準pivot的元素,執行替換

}//退出while迴圈,執行至此,必定是 i= j的情況(最後兩個指標會碰頭)

//i(或j)所指向的既是基準位置,定位該趟的基準並將該基準位置返回

arr[i]

= pivot;

return i;}}

}

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 排序法

;for

(int i =

0; i < arry.length-

1; i++)}

}foreach

(int s in arry)

console.

readline()

;}}}

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 二分法

;//測試的陣列

intvalue

=binarysearch

(arr,8)

;//呼叫方法

console.

writeline

(value);

console.

readline()

;}public

static

intbinarysearch

(int

arr,

intvalue

)//傳入陣列和需要查詢的值

elseif(

value

> arr[num]

)//傳入的值大於中間的,相當於需要查詢的值在比較大的那一半,所以下一次最小的索引從最中間的數加一開始再次迴圈

else

//傳入的值小於中間的,相當於需要查詢的值在比較小的那一半,所以下一次最大的索引從最中間的數減一開始再次迴圈

}return-1

;//如果沒找到就返回-1}}

}

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 快排

ranks.

sort

(compareto)

;//呼叫下面方法開始進行排序

console.

writeline

("*****************排序後********************");

foreach

(rankitem

value

in ranks)

console.

readkey()

;}///

/// 比較規則

///

///

///

///

/// 如果需要交換 返回-1;

/// 不需要交換 返回1;

/// 返回0 交不交換不一定

///

///

static

intcompareto

(rankitem back,

rankitem before)

else

else}}

}}return1;

}}class

rankitem

}}

檔案排序及二分查詢法與氣泡排序法

char fputs char s,int n,file fp int fputs char s,file fp fgets正常時返回讀取字串的首位址,出錯或檔案尾,返回null。fputs正常時返回寫入的最後乙個字元,出錯返回eof。define crt secure no warnings in...

氣泡排序,二分法查詢

lst 18,8,16,2,5,7 通過交換的方式.把列表中最大的值一定到最右端 for abc in range len lst 控制內部移動的次數 n 0 while n len lst 1 if lst n lst n 1 lst n lst n 1 lst n 1 lst n n n 1 p...

氣泡排序法和二分法排序

使用氣泡排序法對陣列進行排序的原理 陣列元素兩兩比較大小 function func arr print r arr arr array 0,11,2,3,24,5,16,7,48,9 func arr 使用快速排序法對陣列進行排序的原理 陣列元素進行樹狀分支,分結點比較大小,然後採用遞迴函式遞迴處...