简单排序(冒泡,插入,选择)
2022-08-22 11:03:12 0 举报
简单排序示例图: 相关博客:https://www.cnblogs.com/greyzeng/p/15186769.html
作者其他创作
大纲/内容
6
4
7
1
选择排序arr[0...N-1]范围上,找到最小值所在的位置,然后把最小值交换到0号位置;arr[1...N-1]范围上,找到最小值所在的位置,然后把最小值交换到1号位置;arr[2...N-1]范围上,找到最小值所在的位置,然后把最小值交换到2号位置;依此类推……arr[N-1...N-1]范围上,找到最小值位置,然后把最小值交换到N-1号位置;所以选择排序的时间复杂度为O(N^2)
2
插入排序想让```arr[0...0]```上有序,这个范围只有一个数,当然是有序的。想让```arr[0...1]```上有序,所以从```arr[1]```开始往前看,如果```arr[1] < arr[0]```,就交换。否则什么也不做。以此类推...想让```arr[0...i]```上有序,所以从```arr[i]```开始往前看,```arr[i]```这个数不停向左移动,一直移动到左边的数字不再比自己大,停止移动。最后一步,想让```arr[0...N-1]```上有序, ```arr[N-1]```这个数不停向左移动,一直移动到左边的数字不再比自己大,停止移动。估算时发现这个算法流程的复杂程度,会因为数据状况的不同而不同。
原始数组
冒泡排序在arr[0~N-1]范围上:arr[0]和arr[1],谁大谁来到1位置;arr[1]和arr[2],谁大谁来到2位置…arr[N-2]和arr[N-1],谁大谁来到N-1位置在arr[0~N-2]范围上,重复上面的过程,但最后一步是arr[N-3]和arr[N-2],谁大谁来到N-2位置在arr[0~N-3]范围上,重复上面的过程,但最后一步是arr[N-4]和arr[N-3],谁大谁来到N-3位置…最后在arr[0~1]范围上,重复上面的过程,但最后一步是arr[0]和arr[1],谁大谁来到1位置
博客:https://www.cnblogs.com/greyzeng/p/15186769.html
0 条评论
下一页