直接插入排序的基本思想是指定輸入資料的個數,從鍵盤輸入給陣列a,從陣列中第2個數a[1]與第1個數a[0]開始比較起,如果第2個數a[1]比第1個數a[0]小,則把第2個數a[1]賦給乙個臨時變數temp,把第1個數a[0]賦給第2個數a[1],由於j控制第二層比較,i=1時j=1此時j=1,第二層迴圈條件不滿足,則把臨時變數temp中的數賦給第乙個數即a[0],然後外層迴圈i自加1,變為2,比較第3個數a[2]與第2個數a[1]的大小,如果第3個數小於第2個數則把第3個數賦給臨時變數,把第2個數賦給第三個數,在進行第二層比較,i=2,j=1條件滿足,用臨時變數跟第乙個數比較,若第1個數大於臨時變數,則把第1個數賦給第2個數,若第1個數小於臨時變數,說明前面的數已經排好序,則第二層迴圈提前終止,把臨時變數i-j。此後類推。
整體程式如下:
#include
using namespace std;
void insertion_sort(int a);
void insertion_sort(int a)
}
資料結構與演算法 排序 直接插入排序
資料結構與演算法 排序 直接插入排序 sort insertsort include includevoid insertsort int list,int len int i,j for i 2 i len i if list i 0 list 0 執行結果 請輸入待排序的數字 exit for ...
資料結構 直接插入排序
直接插入排序 include include typedef struct int elem int length sqlist void initsqlist sqlist l int i printf 請輸入元素個數 scanf d l length l elem int malloc size...
資料結構 直接插入排序
直接插入排序 將待插入子串行元素逐步插入到有序序列的執行過程。設有一待排序序列s 其中是有序的,是無序的,要把後面無需的元素,乙個乙個的插入到前面有序的集合中去。如下面的序列可以分為兩個子串行 和 初始序列 75 88 68 92 88 62 77 96 80 72 第一次排序 75 88 68 9...