排序算法之冒泡排序
排序算法之冒泡排序 分析思路 :冒泡排序,顾名思义就是像冒气泡一样,可以从前冒到后,也可以从后冒到前。这里以从后冒到前,从小到大排序举例:从最后一个值开始,不断将其与前一个值进行比较,如果后面的值比前面的值要小,那就进行交换,这样遍历一次之后,序列第一个位置就已经是最小的值了,如此循环,O(n2)之后就可以全部排好序。 编程思路 : 顺序存储:如果序列为数组,我们可以采用两重for循环。第一重for循环用于记录未排好序序列的起点,第二重for循环用于遍历、比较和交换。 链式存储:如果序列为链表,我们可以采用双指针。第一个指针用于记录未排好序子链的起点,第二个指针用于遍历、比较和交换。(链式存储只能从前冒到后) 具体代码 : 顺序存储 void Emit_Bubble_Sort(int array[],int n) { for (int i = 0; i < n; i++) { for (int j = n-1; j > 0; j--) { if (array[j] < array[j - 1]) { int temp = array[j]; array[j] = array[j - 1]; array[j - 1] = temp; } } } } 链式存储 void Emit_Bubble_Sort(Node *Head) { Node *p=Head->next,*q=Head-