基本插入排序的實現(C++)
#include <iostream> using namespace std; void print(int a[], int n ,int i){ cout<<i <<":"; for(int j= 0; j<8; j++){ cout<<a[j] <<" "; } cout<<endl; } void InsertSort(int a[], int n) { for(int i=1;i<n;i++) { int value=a[i]; int index=i-1; while(index>=0&&a[index]>value) { a[index+1]=a[index]; index--; } a[index+1]=value; print(a,n,i); } } int main(){ int a[8] = {3,1,5,7,2,4,9,6}; InsertSort(a,8); print(a,8,8); }
相關推薦
T:B數的表示及其基本操作的實現(C++)
習題內容: 1.掌握B樹的存貯結構。 2.實現B樹中關鍵字值的插入及刪除操作。 B樹的定義: B樹也稱B-樹,它是一顆多路平衡查詢樹。我們描述一顆B樹時需要指定它的階數,階數表示了一個結點最多有多少個孩子結點,一般用字母M表示階數。當M取2時,就是我們常見的二叉搜尋
基本插入排序的實現(C++)
#include <iostream> using namespace std; void print(int a[], int n ,int i){ cout<<i <<":"; for(int j= 0; j<8; j++){
二叉查詢樹的查詢、插入、刪除、釋放等基本操作的實現(C語言)
二叉查詢樹是一種特殊性質的二叉樹,該樹中的任何一個節點,它的左子樹(若存在)的元素值小於節點的元素值,右子樹(若存在)的元素值大於節點的元素值。 實現了二叉樹查詢樹的實現以及基本操作,包括查詢、插入、刪除、初始化、釋放等。 原始碼下載地址:http://download.c
直接插入排序法(C語言實現)
插入法排序:通過資料移動,留出合適位置插入順序合適的值,而無須資料交換 步驟:從第二個元素“i”開始快取準備用於比較,並留出一個空位將空位前的元素“j”拿來與快取值比較不滿足則移動,直到向前找到頭比較的目的是要讓快取值插入後成為從開頭到插入點這個區間中的最值如果快取值向前看
二叉排序樹基本功能實現(C++)
二叉排序樹(Binary Sort Tree )也稱二叉搜尋樹(Binary Search Tree),以下簡稱BST。 它的特點是左小右大(左子樹小於根,右子樹大於根),令人困惑的是他不允許相等存在,一定要分個高低。這個特點與二叉堆排序有所不同,堆是允許存在相同關鍵字
希爾排序演算法實現(C++)
希爾排序是一種按照增量排序的方法。其中增量值是小於n的正整數。 shell排序的基本思想[1]是: 先取一個小於n的整數d1作為第一個增量,把檔案的全部記錄分成d1個組。所有距離為dl的倍數的記錄放在同一個組中。先在各組內進行直接插人排序;然後,取第二個增量d2<d1重複上述的分組和排序,直
資料結構之串的基本操作的實現(c語言)
我們先一起來看串的一些概念… 字串(簡稱串),可以將其看作是種特殊的線性表,其特殊性在於線性表的資料元素的型別總是字元性,字串的資料物件約束為字符集。 串是由0個或多個字元組成的有限序列。一般記作:s = “s1 s2 s3 …. sn”,,其中,s是串名
單鏈表基本實現(c++)
因為找實習,公司工作人員讓我實現了一下單鏈表的基本演算法。 單鏈表其實是一種比較簡單的資料結構,不同於陣列,單鏈表的節點在記憶體中並不是連續存放的,而是靠節點中的指標來連線起來。所以單鏈表不如陣列那樣可以隨機存取,但是,在其他方面,比如增加元素,插入元素,刪
順序棧——9種基本操作和實現(C語言)
棧是僅限定在表尾進行插入和刪除操作的線性表,九種棧的基本操作;分別是構造 銷燬 清空 棧長 棧頂 插入 刪除 遍歷。下面就是程式碼實現: //標頭檔案 #include<stdio.h> #include<string.h> #include&l
快速排序演算法實現(C++)
快速排序採用的是分治法,其平均時間複雜度為O(nlogn) 一趟快速排序的演算法是[1]: 1)設定兩個變數I、J,排序開始的時候:I=0,J=N-1; 2)以第一個陣列元素作為關鍵資料,賦值給key,即 key=A[0]; 3)從J開始向前搜尋,即由後開
n個整數全排列的遞歸實現(C++)
code clas 全排列 pop data turn ack popu perm 全排列是很經常使用的一個小算法,以下是n個整數全排列的遞歸實現,使用的是C++ #include <iostream> using namespace std; in
一個Windows下線程池的實現(C++)
建立 top dcom div del 進入 程序 前言 sum 前言 本文配套代碼:https://github.com/TTGuoying/ThreadPool 先看看幾個概念: 線程:進程中負責執行的執行單元。一個進程中至少有一個線程。 多線程:一個進程
資料結構---二叉搜尋樹BST實現(C++)
1. 二叉查詢樹 二叉查詢樹(Binary Search Tree),也稱為二叉搜尋樹、有序二叉樹(ordered binary tree)或排序二叉樹(sorted binary tree),是指一棵空樹或者具有下列性質的二叉樹: 若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值
連結串列的實現(c++)
連結串列的實現(c++) 連結串列的陣列實現 #include "stdafx.h" #include <iostream> using namespace std; class Alist { private: int maxsize; int listsize;
二叉樹的實現(c++)
二叉樹的實現(c++) BinNode.h(節點的實現實現) template <typename E> class BinNode { public: virtual ~BinNode() {}; virtual E& element() = 0; vir
Command Pattern -- 命令模式原理及實現(C++)
主要參考《大話設計模式》和《設計模式:可複用面向物件軟體的基礎》兩本書。本文介紹命令模式的實現。 What it is:Encapsulate a request as an object, thereby letting you parameterize clients with di
希爾排序實現(Java)
希爾排序(Shell Sort)是插入排序的一種。也稱縮小增量排序,是直接插入排序演算法的一種更高效的改進版本。希爾排序是非穩定排序演算法。 該方法的基本思想是: 1、把記錄按步長 gap 分組,對每組記錄採用直接插入排序方法進行排序。 2、隨著步長逐漸減
資料結構——二叉樹:基本二叉樹(C++)
內容概要: 二叉樹相關概念 簡單二叉樹模板類的實現:二叉樹的遍歷、計算高度、計算節點數目 注意事項 一、二叉樹相關概念: 第一部分: 節點(node),根節點(root),左子樹(left subtree),右子樹(right suntree),子節點
邊緣檢測之Canny演算法_Qt實現(C++)
邊緣檢測之Canny演算法_Qt實現(C++) Canny邊緣檢測演算法的簡單介紹 Canny的目標是找到一個最優的邊緣檢測演算法,最優邊緣檢測的含義是: 好的檢測 - 演算法能夠儘可能多地標識出影象中的實際邊緣。 好的定位 - 標識出的
大小堆的實現(C++)
過了一段時間了,還是記錄一下,最近感覺記憶力下降的很快啊。大小堆的構造首先得知道大小堆是個什麼,大小堆是一種二叉樹,它的要求比起平衡樹來說是簡單一些的,只有一個,就是所有父節點必須大於自己的子節點,但是沒有什麼左孩子必須小於右孩子這種。到這裡其實大小堆的作用很容易看出,最大堆