(一)氣泡排序
氣泡排序是可用的最慢的排序演算法之一,但是它也是最容易理解和實現的一種排序演算法。這種排序的得名是由與數值「像氣泡一樣」從序列的一端浮動到另外一端。假設現在要把一列數按公升序的方式進行排序,將較大的數值浮動到右側,而小的浮動到左側。這種效果可以通過氣泡排序來實現,具體**如下:
首先新建乙個c#控制台程式,新增乙個carray類,該類用來產生乙個整型陣列。**如下:
**using
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
class
carray
//////
插入乙個數到陣列
//////
public
void
insert(
intitem)
//////
顯示陣列
///public
void
displayelement()
}///
///清空陣列
///public
void
clear()
}///
///返回陣列
//////
public
int returnarr()}}
在program類中新增乙個冒泡程式方法**如下:
//////
氣泡排序
///public
static
void
bubblesort(
int arr) }
console.write("第遍
",arr.getupperbound(0)
-outer+1
);
foreach
(var item
inarr)
console.writeline();}}
main方法中產生乙個10位隨機數,並且呼叫氣泡排序方法。**如下:
static
void
main(
string
args)
console.writeline(
"隨機產生的資料如下");
nums.displayelement();
//顯示資料
console.writeline();
console.writeline(
"氣泡排序開始");
bubblesort(nums.returnarr());
//氣泡排序
console.writeline(
"氣泡排序結束");
console.readkey();
}執行 效果如下:
(二)選擇排序
每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。選擇排序是不穩定的排序方法。n個記錄的檔案的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。**如下:
//////
選擇排序
//////
public
static
void
selectionsort(
int arr)
}temp
=arr[outer];
arr[outer]
=arr[min];
arr[min]
=temp;
console.write("第遍
", outer+1
);foreach
(var item
inarr)
console.writeline();}}
效果圖:
(三)插入排序
插入排序演算法有兩層迴圈,外層迴圈會逐個遍歷陣列,而內迴圈則把外層迴圈所選擇的元素與該元素在陣列內的下乙個選素進行比較,如果外層迴圈選擇的元素小於內層迴圈的元素。那麼陣列元素都向右移以便為內層迴圈元素留出位置。**:
//////
插入排序
//////
public
static
void
insertionsort(
int arr)
arr[inner]
=temp;
console.writeline("第遍
", outer);
foreach
(var item
inarr)
console.writeline();}}
效果圖:
基礎演算法 排序 一
總結 排序演算法維基百科 經典排序演算法 快速排序quick sort 經典排序演算法 桶排序bucket sort 經典排序演算法 插入排序insertion sort 經典排序演算法 基數排序radix sort 經典排序演算法 鴿巢排序pigeonhole sort 經典排序演算法 歸併排序m...
基礎演算法 排序(一)
氣泡排序的基本思路是 它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序 如從大到小 首字母從a到z 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。氣泡排序總的平均時間複雜度為o n2 public static void ...
基礎演算法 排序 一
排序可以說時最基礎的演算法之一,排序就是將資料按照某種邏輯重新排列的過程,比如從大到小排序 從小到大排序 排序非常常見比如有購物車物品的排序 歷史訂單的排序等等 演算法我們比較關心的主要有兩點 時間複雜度與空間複雜度,排序演算法一樣 這篇文章只介紹幾種基本的排序演算法 氣泡排序 插入排序 選擇排序 ...