首页 > 代码库 > 排序之----插入排序(C#实现)
排序之----插入排序(C#实现)
算法步骤:(从小到大)
1:将第一个元素与第二个元素比较大小,如果第一个元素小于等于第二个元素,不做处理,继续比较第二个元素和第三个元素。
如果第三个元素小于第二个元素,保存要移动的元素(第三个元素),将第二个元素后移一位,在比较第一个元素与第三个元素,看第一个元素是否需要移动,一直循环,找到第一个不需要移动的元素或者第0个元素,将前面保存的元素插入到该位置。
class Program { static void Main(string[] args) { var numbers = new int[]{5,5,6,1,4,7,2,9}; var result=InsortSort(numbers); } public static int[] InsortSort(int [] numbers) { int temp = 0; for (int i = 0; i < numbers.Length - 1; i++) { if(numbers[i]<=numbers[i+1]) continue; temp = numbers[i + 1];//temp保存要向前移动的数字,防止数字被覆盖掉 for (int j = i; j >= 0; j--)//numbers从第i个元素到第0个元素为可能要向后移动的元素 { if (temp <= numbers[j])//numbers[j]需要向后移动一个位置 numbers[j + 1] = numbers[j];//numbers[j+1]已经移动过,或者保存在temp中了,所以不会丢失数据 else { numbers[j +1] = temp;//j+1是要插入的位置 break; } if (j == 0)//值最小的情况 numbers[0] = temp; } } return numbers; } }
排序之----插入排序(C#实现)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。