///
/// 氣泡排序
///
///
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 ...