如何理解排序算法:[1]直接插入排序法
直接插入排序算法是排序算法中最簡單的,但在尋找插入位置時的效率不高。基本思想就是將一個待排序的數字在已經排序的序列中尋找找到一個插入位置進行插入。直接插入排序的算法重點在於尋找插入位置。
操作方法
(01)設定待排序的數據儲存在數組data[]中
(02)設定外層循環,即從第二個數據到最後一個數據。(只有一個數據則爲考慮爲已經是有序的,所以循環從第二個數據開始)其中n爲待排序數據的長度。
(03)定義一個用來臨時儲存將要進行插入操作的元素temp。
(04)編寫內層循環,尋找插入位置並移動元素。
(05)將tmp插入到尋找到的位置j+1
(06)最後附上全部執行代碼及執行截圖#include "stdafx.h"#include <iostream>using namespace std;template <class T>void outputArr(T&,int);int main(){int i, j;int data[] = { 23, 98, 7, 28, 92, 14, 89, 1 };//共8個數據int n = sizeof(data) / sizeof(data[0]);cout << "排序前的結果:n";outputArr(data, n);for ( i = 1; i < n;i++){int temp = data[i];for ( j = i - 1; j >= 0 && data[j]>temp;j--){data[j + 1] = data[j];}data[j + 1] = temp;}cout << "排序後的結果:n";outputArr(data, n);return 0;}template <class T>void outputArr(T &a,int n){for (int i = 0; i < n;i++){cout << a[i] << " ";}cout << endl;}
(07)可以透過引入哨兵來將算法改進,避免了邊界檢查。即將數組的第一個位置替換上面的temp臨時變量。
-
電腦顯示屏幕不亮 筆記本不能開機啓動
電腦非正常關機或者用久了,再次開啟,突然打不開了,屏幕顯示不亮,連繫統都進不了怎麼回事?何種情況下,需要維修?操作方法(01)第一檢視信號指示燈。先是判斷實際能否開機,若開機了指示燈會有閃爍。黑屏有時並非全黑屏,仔細看是灰屏,此時信號燈開機時有閃爍。說明硬件沒有問題...
-
在Word文檔中怎麼樣進行簡繁體轉換?
字型有繁體和簡體之分,而Word文檔主要的功能是記錄儲存文字文字,可能由於區域不一樣,有的喜歡用簡體有的喜歡用繁體,爲了方便檢視,就需要用到簡繁體的相互轉換了。操作方法(01)方法一:比較常用的,就是用Word文檔自帶的簡繁體轉換功能,找到審閱——簡轉繁——便可將選擇的...
-
Thinkpadx250熱啓動及系統安裝
電腦安裝系統大家可能都不陌生了,現在重裝系統基本上都有現成的工具步驟,一步一來小白也能變大神,但是不同品牌的電腦可能進入U盤啓動工具的快速鍵不同。今天給大家介紹下Thinkpadx250筆記本的熱啓動及系統的安裝。操作方法(01)1、不同的電腦有不同的設定,有些電腦熱...
-
電腦工具欄到了電腦的右邊,怎麼恢復到底部?
一般電腦的工具欄是在電腦的底部,可是有些時候就會跑到電腦兩側,今天我要講的就是恢復方法。操作方法(01)工具欄跑到了電腦的右側(02)在工具欄處點擊鼠標右鍵,找到“屬性”點擊,出現任務欄對話框(03)在鎖定任務欄前打√,任務欄在屏幕上的位置選擇底部,點擊確定即可...