【排序】几种简单的排序(冒泡、选择、插入)(一)
生活随笔
收集整理的這篇文章主要介紹了
【排序】几种简单的排序(冒泡、选择、插入)(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PAT【甲級】的相關要求:
? ? ?在達到乙級要求的基礎上,還要求:
所以需要掌握等能力也包括:線性表、樹、圖、哈希映射、并查集、最短路徑、拓撲排序、關鍵路徑、貪心、深度優先搜索、廣度優先搜索、回溯剪枝等十幾種算法能力。在PAT【乙級】中最難到排序算法,所以先從排序算法開始學習。
1.1 冒泡排序
算法步驟:
代碼實現:
void BubbleSort(int arr[],int n){for(int i=0;i<n;i++){ //排序的趟數,也可以n-1for(int j=0;j<n-1-i;j++){ //元素比較次數if(arr[j]>arr[j+1]){ //如果前一個元素比后一個元素大,交換兩個元素int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}} }?1.2 選擇排序
算法步驟:
代碼實現:
void SelectSort(int arr[],int n){for(int i=0;i<n-1;i++){int min=i; //記錄最小元素的下標for(int j=i+1;j<n;j++){if(arr[j]<arr[min]){min=j; //把最小值的下標賦值給找到的更小的值的下標}}int temp=arr[i];arr[i]=arr[min];arr[min]=temp;} }1.3 插入排序
算法步驟:?
代碼實現:
void InsertSort(int arr[],int n){for(int i=1;i<n;i++){ //n-1排序int temp=arr[i],j=i;while(j>0&&temp<arr[j-1]){arr[j]=arr[j-1];j--;}arr[j]=temp;} }?
總結
以上是生活随笔為你收集整理的【排序】几种简单的排序(冒泡、选择、插入)(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PAT】B1048 数字加密
- 下一篇: 【PAT笔记】PAT中的散列思想