插入排序:1,第0个数,其自己是有序的,因此从后面开始处理。
2,将数向后移动。
3,插入位置:j+1。注意!
白盒阅读:
①下标是否越界
②是否是“插入”的思想
③能否“排序”
黑盒测试:
使用一个简化的用例,排序过程是否正确,结果是否正确
源码:
- void insert_sort(int a[],int n)
- {
- // the single a[0] is sorted.
- for(int i=1; i<n; i++)
- {
- int current = a[i];
-
- int j = i-1;
- for( ;j >= 0; j--)
- {
- if (a[j] > current)
- {
- a[j+1] = a[j];
- }
- else
- {
- break;
- }
- }
- // when it comes here,j's value may be -1.
- a[j+1] = current;
- output(a,n);
- }
- }
阅读(775) | 评论(0) | 转发(0) |