插入排序 insertion sort
2013-07-08 04:11
211 查看
/* INSERTION SORT 插入排序(适用于小规模的数据排序) 时间复杂度 n^2 整体思路与玩牌是对手中扑克的排序方法类似 算法描述: ⒈ 从第一个元素开始,该元素可以认为已经被排序 ⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描 ⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置 ⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 ⒌ 将新元素插入到下一位置中 ⒍ 重复步骤2 */ #include<stdio.h> int main() { int i, j; //存取当前值作为临时变量 int key; int sort_arr[10]={5,67,34,12,45,78,1,45,67,37}; //插入算法 for(j = 1; j < 10; j++) { //当前未排序值 key = sort_arr[j]; //将当前的下标标记位向前移动一位,表示已排序的结束位 i = j - 1; //判定条件: 已排序部分的某元素大一当前未排序值 while(i >= 0 && sort_arr[i] > key) { //将该值向后移一位 sort_arr[i+1] = sort_arr[i]; //下标标记再向前一位 i = i - 1; } //将当前值放入已排序部分的相应位置 sort_arr[i+1] = key; } for(i = 0; i < 10; i++) { printf("%d ", sort_arr[i]); } printf("\n"); return ; }
相关文章推荐
- 基础排序算法 – 插入排序Insertion sort
- 选择排序(Selection Sort)和插入排序(Insertion Sort)
- Leetcode Insertion Sort List 插入排序链表
- PAT甲题题解1098. Insertion or Heap Sort (25)-(插入排序和堆排序)
- insertionSort()插入排序
- 插入排序(INSERTION-SORT)
- 算法总结JS版(三)—— 插入排序(Insertion Sort)
- [算法练习]Insertion Sort 插入排序
- 插入排序(InsertionSort)
- 排序算法——插入排序(Insertion Sort)
- 插入排序(InsertionSort)
- Python 数据结构与算法——插入排序(insertion sort)
- 插入排序:直接插入排序-Direct insertion sort
- 【算法】插入排序(Insertion Sort)
- insertion sort(插入排序)
- Java 插入排序(Insertion Sort)
- 【算法】插入排序 insertion_sort
- 插入排序(insertion-sort)
- 插入排序(INSERTION-SORT)
- Insertion Sort List 链表的插入排序