氣泡排序【穩定排序】
///冒泡
void bubblesort(int arr, int len)
int bound = 0;
for (; bound < len; bound++)
} }}
選擇排序
「打擂台」
///選擇排序//
void selectsort(int arr, int len)
int bound = 0;
for (; bound < len; bound++)
} }}
插入排序【穩定排序】
步驟:定義好邊界。
儲存bound指向的元素
從後往前的去找乙個合適的防治bound_value的位置,一邊找一邊搬運。
特點:
插入排序///
void insersort(int arr, int len)
int bound = 1;
for (; bound < len; bound++)
else
}arr[cur] = bound_value;
}}
堆排序
堆的性質:完全二叉樹
如果是小隊,父節點的值小於子節點,如果是大堆,反之。
堆排序步驟:
基於數組建堆
迴圈刪除堆頂元素,將所有的元素都刪除,排序完成
int cmp(int a, int b)
void adjustdown(int arr, int len, int index)
else
child = parent;
parent = (child - 1) / 2;
} }swap(&arr[0], &arr[len - 1]);
adjustdown(arr, len-1, 0);
}void heapcreate(int arr, int len)
int i =len-1;
for (; i > 0; --i)
adjustup(arr, len, 0);
}void heapsort(int arr, int len)
int left = 0;
int right = len - 1;
}
希爾排序【穩定排序】------分組式的插入排序
gap:步長,指同組元素之間的下表間隔
gap取值:n/2,n/4,n/8......1;
void shellsort(int arr, int len)
else
}} }
}
C語言 氣泡排序,選擇排序,插入排序
利用順序表進行三種排序 1,氣泡排序 void bubblessort seqlist seq 氣泡排序 2,選擇排序 void selectsort seqlist seq 選擇排序 swap seq array begin seq array min index if begin max ind...
氣泡排序,選擇排序,插入排序
氣泡排序,選擇排序,插入排序 小規模的檔案以及基本有序的檔案,插入排序的效能比快速排序的效能更為有效一些,實際上,插入排序通常也做快速排序實現的一部分。1 氣泡排序 packagedatastrut public classbubblesort public voidinsert longvalue...
選擇排序 , 插入排序 , 氣泡排序
編寫 include void println int array,int len 列印給定長度的陣列 printf n void swap int array,int i,int j 交換陣列中兩個位置的元素 void selectionsort int array,int len o n n 對...