//核心: 插入排序 + 歸併排序
//1.插入排序:
// (1)從有兩個的時候開始:
// (2)每一輪排序
//// for(int i=2;i<=n;i++)
//2.歸併排序:
// (1)從有兩個的時候開始: step/2<=n, step*2
// (2)從0開始, 每乙個部分進行排序
//// for(int step=2; step/2<=n; step*=2)
// }
//3.記住swap函式可以直接用
#include #include #include using namespace std;
int n, flag=0;
vectorinput1, input2;
vectorresults;
void show(vectorv)
printf("\n");
}//1.迴圈: 排前幾個數
//2.如果相等, 再排一次, 返回
//3.迴圈出來, 則不是
void insertsort()
}void downadjust(int low, int high)
else break; }}
//1.從n/2處開始建堆
//2.如果相等, 再交換一次, 返回
void heapsort()
}int main()
else if (flag == 2)
return 0;
}
//核心: 尋找每個元素左邊的最大值, 右邊的最小值
//1.左邊最大, 右邊最小
// (1)左邊最大:leftmax[i]=max(leftmax[i-1], inputs[i-1]);
// (2)右邊最小:rightmin[i]=min(rightmin[i+1], inputs[i+1]);
了乙個pa: 在最後加 printf("\n"); 可以de掉乙個pe
#include #include #include using namespace std;
const int inf = 0x7fffffff;
int n;
vectorinputs, leftmax, rightmin, results;
//輸出數的層序和中序
int main()
printf("\n");
return 0;
}
排序演算法 排序演算法之選擇排序
最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...
排序演算法 排序演算法彙總
排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...
排序演算法 排序演算法彙總
排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...