第二章 :查詢與排序-------遞迴形式進行插入排序
1、切蛋糕思維:
求階乘: f(n)=n*f(n-1);
列印i-j:p(i,j)=p(i)->p(i+1,j);
陣列求和:
翻轉字串
2、劃不開,有沒有遞推公式?有沒有等價轉換?
斐波那契數列 f(n)=f(n-1)+f(n-2)
最大公約數f(m,n)=f(n,m%n)
插入排序改遞迴
漢諾塔
遞迴形式進行插入排序:
#include<iostream>
using namespace std;
/*
**找重複
**找變化
**找邊界
*/
void insertSort(int arr[],int k){ //k:下標
if(k==0) return;
//對前k-1個元素進行排序
insertSort(arr,k-1);
//把位置k的元素插入到前面的部分
int x=arr[k];
int index=k-1;
while((index>-1)&&(x<arr[index])){
arr[index+1]=arr[index];
index--;
}
arr[index+1]=x;
}
int main(){
int a[]={1,5,2,7,3,1};
insertSort(a,5);
for(int i=0;i<6;i++){
cout<<a[i]<<" ";
}
return 0;
}
結果:
小結:
找重複:
1、找到一種劃分方法
2、找到遞推公式或者等價轉換
都是父問題轉化為求解子問題
找變化的量:
變化的量通常要作為引數
找出出口
相關文章
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 第二章 :查詢與排序-------2.13_三種典型遞迴形式演算法的效能分析排序遞迴演算法
- 第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題排序遞迴
- 第二章 :查詢與排序-------2.16 解題實戰_小白上樓梯(遞迴設計)排序遞迴
- 第二章 :查詢與排序-------希爾排序排序
- iOS 演算法之排序、查詢、遞迴iOS演算法排序遞迴
- SqlServer遞迴查詢SQLServer遞迴
- PostgreSQL 遞迴查詢SQL遞迴
- sqlalchemy 遞迴查詢SQL遞迴
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- 遞迴查詢子元素遞迴
- 第二章 :查詢與排序-------2.19題目詳解_找出最長連續遞增子序列排序
- ORDER對查詢結果進行排序排序
- 快速排序【遞迴】【非遞迴】排序遞迴
- 第二章 :查詢與排序-------2.15 分析10種排序演算法的穩定性排序演算法
- java-遞迴(檔案查詢)Java遞迴
- 遞迴-*快速排序遞迴排序
- 遞迴-M--二分查詢遞迴
- 遞迴樹形查詢所有分類遞迴
- 147. 對連結串列進行插入排序排序
- SQL server資料庫with as子句與遞迴查詢的實現SQLServer資料庫遞迴
- 資料庫遞迴查詢:MySQL VS Sequelize資料庫遞迴MySql
- 透過遞迴查詢應用依賴遞迴
- Java實現遞迴查詢樹結構Java遞迴
- 第二章 :查詢與排序-------2.18題目講解_在有空字串中的有序字串陣列中查詢排序字串陣列
- 快速排序-遞迴方式排序遞迴
- oracle之樹狀結構的儲存與展示(遞迴查詢)Oracle遞迴
- LeetCode-147-對連結串列進行插入排序LeetCode排序
- 第二章 :查詢與排序-------2.10常見函式的複雜度計算排序函式複雜度
- 圖解選擇排序與插入排序圖解排序
- 演算法+資料結構=程式,今天就來說說遞迴+排序+查詢,再加上樹與圖演算法資料結構遞迴排序
- 簡單C#遞迴(向前查詢上工序)C#遞迴
- 插入排序排序排序
- 二十一、氣泡排序演算法——JAVA實現(遞迴與非遞迴)排序演算法Java遞迴
- 力扣 147. 對連結串列進行插入排序力扣排序
- 三種插入排序 直接插入排序,折半插入排序,希爾排序排序
- 二分法查詢(遞迴實現)遞迴