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 使用快速排序法對陣列進行排序的原理 陣列元素進行樹狀分支,分結點比較大小,然後採用遞迴函式遞迴處...