直接插入排序

来源:互联网 发布:防范网络电信诈骗措施 编辑:程序博客网 时间:2024/06/01 23:03

直接插入排序算法

直接插入排序的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,....,第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换,.....,第n-1次从R[n-2]~R[n-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。


#include<stdio.h>void InsertSort(int arr[], int len){int i;//未排序序列带排序的元素下标int j;//已排序序列最大元素的下标int temp;for (i = 1; i < len; ++i){temp = arr[i];for (j = i - 1; j >= 0 && arr[j] > temp; --j){arr[j + 1] = arr[j];}arr[j + 1] = temp;}}void show(int arr[], int len){for (int i = 0; i < len; ++i){printf("%d ", arr[i]);}printf("\n");}int main(){int arr[] = { 56, 6, 6, 2, 26, 32, 5, 1, 8, 2, 36 };int len = sizeof(arr) / sizeof(arr[0]);show(arr, len);InsertSort(arr, len);show(arr, len);return 0;}




原创粉丝点击