地精排序Gnome Sort ----(排序算法十)
2013-10-24 21:38
246 查看
1.算法原理
2.算法代码
#include <stdio.h> //printArray打印出数组 void printArray(int a[],int size){ printf("数组为:[%d] ",a[0]); for (int i=1;i<size;i++) { printf(" %x ",a[i]); } printf("\n"); } void main() { //a[0]监视哨 int a[10] ={0,9,8,7,6,5,4,3,2,1}; int len=10; int i = 1; while (i < len) { if (i == 1 || a[i-1] <= a[i]){ i++; }else{ printf("%d<-->%d ",a[i-1],a[i]); printArray(a,10); a[0] = a[i]; a[i] = a[i-1]; a[--i] = a[0]; } } printArray(a,10); }
3.结果
9<-->8 数组为:[0] 9 8 7 6 5 4 3 2 1 9<-->7 数组为:[8] 8 9 7 6 5 4 3 2 1 8<-->7 数组为:[7] 8 7 9 6 5 4 3 2 1 9<-->6 数组为:[7] 7 8 9 6 5 4 3 2 1 8<-->6 数组为:[6] 7 8 6 9 5 4 3 2 1 7<-->6 数组为:[6] 7 6 8 9 5 4 3 2 1 9<-->5 数组为:[6] 6 7 8 9 5 4 3 2 1 8<-->5 数组为:[5] 6 7 8 5 9 4 3 2 1 7<-->5 数组为:[5] 6 7 5 8 9 4 3 2 1 6<-->5 数组为:[5] 6 5 7 8 9 4 3 2 1 9<-->4 数组为:[5] 5 6 7 8 9 4 3 2 1 8<-->4 数组为:[4] 5 6 7 8 4 9 3 2 1 7<-->4 数组为:[4] 5 6 7 4 8 9 3 2 1 6<-->4 数组为:[4] 5 6 4 7 8 9 3 2 1 5<-->4 数组为:[4] 5 4 6 7 8 9 3 2 1 9<-->3 数组为:[4] 4 5 6 7 8 9 3 2 1 8<-->3 数组为:[3] 4 5 6 7 8 3 9 2 1 7<-->3 数组为:[3] 4 5 6 7 3 8 9 2 1 6<-->3 数组为:[3] 4 5 6 3 7 8 9 2 1 5<-->3 数组为:[3] 4 5 3 6 7 8 9 2 1 4<-->3 数组为:[3] 4 3 5 6 7 8 9 2 1 9<-->2 数组为:[3] 3 4 5 6 7 8 9 2 1 8<-->2 数组为:[2] 3 4 5 6 7 8 2 9 1 7<-->2 数组为:[2] 3 4 5 6 7 2 8 9 1 6<-->2 数组为:[2] 3 4 5 6 2 7 8 9 1 5<-->2 数组为:[2] 3 4 5 2 6 7 8 9 1 4<-->2 数组为:[2] 3 4 2 5 6 7 8 9 1 3<-->2 数组为:[2] 3 2 4 5 6 7 8 9 1 9<-->1 数组为:[2] 2 3 4 5 6 7 8 9 1 8<-->1 数组为:[1] 2 3 4 5 6 7 8 1 9 7<-->1 数组为:[1] 2 3 4 5 6 7 1 8 9 6<-->1 数组为:[1] 2 3 4 5 6 1 7 8 9 5<-->1 数组为:[1] 2 3 4 5 1 6 7 8 9 4<-->1 数组为:[1] 2 3 4 1 5 6 7 8 9 3<-->1 数组为:[1] 2 3 1 4 5 6 7 8 9 2<-->1 数组为:[1] 2 1 3 4 5 6 7 8 9 数组为:[1] 1 2 3 4 5 6 7 8 9
相关文章推荐
- 地精排序(Gnome Sort) 最简单的排序算法
- 地精排序Gnome Sort ----(排序算法十)
- 地精排序-Gnome Sort
- 经典排序算法 - 地精排序Gnome Sort
- java排序算法_008地精排序(Gnome Sort)
- 地精排序Gnome Sort
- 再探地精排序GnomeSort
- 地精排序 Gnome Sort
- 地精排序(Gnome Sort) 算法
- 数据结构杂谈(二)简单有趣的地精排序Gnome sort
- C:C的排序算法:直接插入排序(InsertSort)
- 经典排序算法 - 基数排序Radix sort
- 臭皮匠排序(Stooge Sort)----(排序算法十二)
- PHP实现排序算法----直接插入排序(Straight Insertion Sort)
- 经典排序算法 - 基数排序Radix sort
- 经典排序算法 - 图书馆排序(Library Sort)
- 经典排序算法 - 基数排序Radix sort
- js 快速数组排序 Array sort()排序算法 splice()
- 经典排序算法 - 基数排序Radix sort
- 经典排序算法 - 基数排序Radix sort