1.氣泡排序
(1)第一次比較:首先比較第一和第二個數,將小數放在前面,將大數放在後面。然後比較第2和第3個數,將小數放在前面,大數放在後面 ······ 。
(2)在上面一趟比較完成後,最後乙個數一定是陣列中最大的乙個數,所以在比較第二趟的時候,最後乙個數是不參加比較的。
······
//簡單氣泡排序舉例【公升序】
# include
void
bubble_sort
(int*,
int)
;int
main
(void);
bubble_sort
(arr,len)
;for
(i =
0;i <
6;i++
)printf
("%d "
,arr[i]);
printf
("\n");
return0;
}void
bubble_sort
(int
* arr,
int len)}}
}
2.插入排序
第一次 第二個數插入第乙個數中,使前兩個數有序
第二次 第三個數插入前兩個數中,使前三個數有序
····
//直接插入排序【公升序】
# include
void
insertion_sort
(int*,
int)
;int
main
(void);
insertion_sort
(arr,len)
;for
(i =
0;i <
6;i++
)printf
("%d "
,arr[i]);
printf
("\n");
}void
insertion_sort
(int
* arr,
int len)
arr[j+1]
= t;}}
}
3.選擇排序(降序)
第乙個數和後面每個數比,比第乙個數大,就互換。
結果就是第乙個數是最大的
接著第二個數和後面比···
//直接選擇排序【降序】
# include
void
selection_sort
(int*,
int)
;int
main
(void);
selection_sort
(arr,len)
;for
(i =
0;i <
6;i++
)printf
("%d "
,arr[i]);
printf
("\n");
return0;
}void
selection_sort
(int
* arr,
int len)
if(min != j)
}}
4.快速排序
先把左邊第乙個數的確切位置找到(左邊的數比第乙個數小,右邊的數比第乙個數大)
之後遞迴,再把左邊第乙個數的確切位置找到······
# include
//快速排序(公升序)
void
quick_sort
(int*,
int,
int)
;int
find_pos
(int*,
int,
int)
;int
main
(void);
quick_sort
(arr,low,high)
;//low表示起始位置,high表示結束位置
for(i =
0;i <
7;i++
)printf
("%d "
,arr[i]);
printf
("\n");
return0;
}void
quick_sort
(int
* arr,
int low,
int high)
}int
find_pos
(int
* arr,
int low,
int high)
arr[low]
= val;
return high;
}
5.歸併排序
先兩個,兩個排序,使兩個中的數有序
再4個,4個排,使4個中的數有序,······
3 1 4 7 9 0 5 8
1 3 4 7 0 9 5 8
1 3 4 7 0 5 8 9
0 1 3 4 5 7 8 9
# include
void
merge_sort
(int arr,
const
int len)
;void
merge_sort_recursive
(int arr,
int reg,
int start,
int end);
intmain
(void);
merge_sort
(arr,7)
;for
(i =
0;i <
7;i++
)printf
("%d "
,arr[i]);
printf
("\n");
return0;
}void
merge_sort_recursive
(int arr,
int reg,
int start,
int end)
void
merge_sort
(int arr,
const
int len)
資料結構 排序
小小總結了下 希望別不記得 排序型別 排序方法 平均時間 最壞時間 最好時間 穩定空間 插入直接插入 o n2 o n2 o n 穩定o 1 希爾排序 o n3 2 增量序列最後為1,只有公因子1 不穩o 1 選擇簡單選擇 o n2 o n2 o n 穩定o 1 堆排序o n lb n o n lb...
資料結構 排序
郝斌版 資料結構 學習筆記 冒泡 公升序,12比,大放後面,再23比,直至最大的在最後面 插入 2,3,4,依次插入值,保證插入值後的序列為有序的 選擇 後面所有的最小值依次排到最前 快速排序 歸併排序 22排,44排,88排.排序演算法標準 時間,空間,穩定性 排序和查詢的關係 排序是查詢的前提,...
資料結構 排序
1.希爾排序 shellsort 增量序列d n為要排序數的個數 void shellinsertsort int a,int n,int dk n個要排序的數,dk是增量 2 堆排序 已知h s m 除了h s 外均滿足堆的定義 調整h s 使其成為大頂堆.即將對第s個結點為根的子樹篩選,para...