日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

排序算法之——插入排序

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 排序算法之——插入排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

插入排序思想:將插入的元素記錄,與前面的元素進行比較大小,查詢到插入的位置,然后再將比它大的元素向后面移動,空出插入的位置,將元素插入。

剩下的和②步驟一樣。。。

代碼這里給出了3種,從基礎到優化

//1 void InsertSort(int* a, int n) {for (int i = 1; i < n; ++i){if (a[i] < a[i - 1]){int temp = a[i];for (int j = 0; j < i; ++j){if (temp < a[j]){for (int k = i; k > j; k--)a[k] = a[k - 1];a[j] = temp;break;}}}} } //2 void InsertSort(int* a, int n) {int i, j;for ( i = 1; i < n; i++){if (a[i] < a[i - 1]){int temp = a[i];for (j = i; j >= 0 && a[j-1] > temp; j--){a[j] = a[j - 1];}a[j] = temp;}} } //3
void
InsertSort(int* a, int n) {int temp;for (int i = 1; i < n; i++){int low = 0, high = i - 1;temp = a[i];while (low <= high){int mid = (low + high) / 2;if (temp < a[mid])high = mid - 1;elselow = mid + 1;}for (int j = i; j > low; --j){a[j] = a[j - 1];}a[low] = temp;} }

主方法:

int main() {int arr[] = { 9,2,3,1,5,4,7,8,6 };int n = sizeof(arr) / sizeof(int);InsertSort(arr, n); //插入排序for (int i = 0; i < n; i++){cout << arr[i] << " ";}cout << endl;return 0; }

?

轉載于:https://www.cnblogs.com/single-dont/p/11354265.html

總結

以上是生活随笔為你收集整理的排序算法之——插入排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。