經典排序演算法(C 實現)

2021-09-13 00:03:44 字數 1862 閱讀 3590

/// 

/// 氣泡排序

///

///

public

static

int[

]bubblesort

(int

array)}}

return array;

}

/// 

/// 選擇排序

///

/// 1. 從左至右遍歷,找到最小(大)的元素,然後與第乙個元素交換。

/// 2. 從剩餘未排序元素中繼續尋找最小(大)元素,然後與第二個元素進行交換。

/// 3. 以此類推,直到所有元素均排序完畢。

///

///

public

static

int[

]selectionsort

(int

array)

// 交換元素

int temp = array[i]

; array[i]

= array[min]

; array[min]

= temp;

}return array;

}

/// 

/// 插入排序

///

/// 1.從第乙個元素開始,該元素可以認為已經被排序

/// 2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄

/// 3.如果該元素小於前面的元素(已排序),則依次與前面元素進行比較如果小於則交換,直到找到大於該元素的就則停止;

/// 4.如果該元素大於前面的元素(已排序),則重複步驟2

/// 5.重複步驟2~4 直到所有元素都排好序 。

///

///

///

public

static

int[

]insertsort

(int

array)

//如果大於,則不用繼續往前比較了,因為前面的元素已經排好序,比較大的大就是大的了。

else

break;}

}return array;

}

/// 

/// 快速排序

///

/// 1.i =l; j = r; 將基準數x挖出形成第乙個坑a[i]

/// 2.j--由後向前找比基準數小的數,找到後挖出此數填入前乙個坑a[i] 中

/// 3.i++由前向後找比基準數大的數,找到後也挖出此數填到前乙個坑a[j] 中

/// 4.再重複執行2,3二步,直到i==j,將基準數填入a[i] 中

///

///

///

public

static

int[

]quicksort

(int

array,

int left,

int right)

if(i < j)

// 從左往右找,找大於基準的數,如果該數小於基準,i++ 繼續找

while

(i < j && array[i]

< x)

if(i < j)

}// 退出時,i=j,將x填入該坑

array[i]

= x;

quicksort

(array, left, i -1)

;quicksort

(array, i +

1, right);}

return array;

}

end

經典排序演算法C 實現

用c 實現了經典的氣泡排序 插入排序 選擇排序 堆排序 快速排序 希爾排序 歸併排序。等空閒的時候再補充每個排序演算法的思想以及易錯點。氣泡排序 void bubble sort vector arr,int n if swaped 0 break else swaped 0 插入排序 withou...

經典排序演算法C 實現

void insert vector a 直接插入排序 void insert vector a 氣泡排序 void pick vector a swap a i a idx 直接選擇排序 void merge vector ans,int l,int mid,int r while i mid t...

C 實現所有經典排序演算法

c 實現所有經典排序演算法 1 選擇排序 希爾排序 public class shellsorter arr j 1 t static void main string args shellsorter s new shellsorter s.sort array foreach int m in ...