冒泡排序
public static int[] data = {3,7,8,0,9,5,4,1,6,2}; public static void main(String[] args) { int len = data.length; System.out.println(Arrays.toString(data)); for(int i = 0; i < len - 1; i++){ for(int j = i + 1; j < len; j++){ if(data[i] > data[j]){ swap(i, j); } } System.out.println(); System.out.println(Arrays.toString(data)); } } private static void swap(int index1, int index2){ int temp = data[index1]; data[index1] = data[index2]; data[index2] = temp; System.out.print("[" + data[index1] + ":" + data[index2] + "]"); }
选择排序
public static int[] data = {3,7,8,0,9,5,4,1,6,2}; public static void main(String[] args) { int len = data.length; System.out.println(Arrays.toString(data)); System.out.println(); for(int i = 0; i < len - 1; i++){ int min = i; for(int j = i + 1; j < len; j++){ if(data[min] > data[j]){ min = j; } } swap(i, min); System.out.println(Arrays.toString(data)); } } private static void swap(int index1, int index2){ int temp = data[index1]; data[index1] = data[index2]; data[index2] = temp; System.out.println("[" + data[index1] + ":" + data[index2] + "]"); }
插入排序
public static int[] data = {3,7,8,0,9,5,4,1,6,2}; public static void main(String[] args) { int len = data.length; System.out.println(Arrays.toString(data)); System.out.println(); for(int i = 1; i < len; i++){ System.out.println("i =" + i); int temp = data[i]; int j = i - 1; while(j >= 0 && data[j] >= temp){ data[j + 1] = data[j]; j--; } data[j + 1] = temp; System.out.println(Arrays.toString(data)); } }
相关推荐
1. **希尔排序**:希尔排序是由Donald Shell提出的,它是插入排序的一种更高效的改进版本。希尔排序通过将待排序的元素按照一定的间隔分组,然后对每个组进行插入排序,随着间隔逐渐减小,最终实现整个序列的排序。...
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
1. **冒泡排序**:冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成...
1. **直接插入排序**: 直接插入排序是一种简单直观的排序算法,它的工作原理类似于打扑克牌时的排序。在已排序的部分序列中,逐个插入未排序元素,每次插入都会从后向前比较,找到合适的插入位置。这种算法对于小...
插入排序是最简单的排序算法之一,它的工作原理类似于手动整理扑克牌。遍历数组,将每个元素插入到已排序的部分,保持已排序部分的顺序。对于小规模或部分有序的数据,插入排序效率较高。其平均和最坏情况下的时间...
简单插入排序的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的记录数增加1的有序表。对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程...
冒泡排序 简单选择排序 c语言基础 排序算法 数组操作 排序算法实验 简单的c语言程序 排序算法输出
2. 冒泡排序:是最简单的排序算法之一,通过不断交换相邻位置的元素来逐渐达到排序的目的。每一轮遍历都能确保最大(或最小)的元素被放置到正确的位置,重复这个过程直到整个数组排序完成。 3. 选择排序:每次从未...
1. **插入排序**: 插入排序是一种简单的排序算法,它的工作原理类似于我们日常生活中整理扑克牌。首先,我们假设数组的第一个元素已经排序好,然后从第二个元素开始,依次将每个元素插入到已排序部分的正确位置。...
冒泡排序是一种简单的排序算法,它的主要思想是通过不断地比较相邻元素,并交换它们以达到排序的目的。在C语言中,冒泡排序的实现非常简单,下面我们将详细介绍冒泡排序的实现过程。 冒泡排序的实现步骤: 1. 首先...
1. **直接插入排序**:直接插入排序是最基础的排序算法之一。它的工作原理是将待排序的元素逐个与已排序的部分进行比较,找到合适的位置插入。这种算法对于小规模或部分有序的数据集表现较好,但对于大规模无序数据...
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
冒泡排序是最简单的排序算法之一,通过比较相邻元素并交换位置来实现排序。每一轮遍历会确保最大的元素“冒”到数组的末尾。这个过程会重复,直到所有元素都排好序。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1...
插入排序是一种简单直观的排序算法,它的工作原理类似于我们日常生活中整理扑克牌的过程。算法的核心思想是将未排序的元素逐个插入到已排序的部分,确保每次插入后已排序部分都保持有序状态。C++中实现插入排序的...
3. **插入排序**:简单直观,对于小规模数据或部分有序的数据效率较高。它的工作原理类似于我们平时手动整理扑克牌,每次取一个未排序的元素,插入到已排序的部分中合适的位置,直到所有元素都插入完毕。 4. **选择...
选择排序是一种简单直接的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法,因为它可能会改变...
插入排序是一种简单的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。在C++中,可以使用两层循环实现,外层循环控制未排序部分,内层循环寻找插入...
与普通的插入排序不同,希尔排序在第一轮排序时不会将序列完全排序,而是先按照一定的间隔将数据分成几个子序列进行排序,之后逐步减小间隔,直到间隔为1时进行最后一轮排序,此时的排序过程等同于普通的插入排序。...
选择排序是一种简单直观的排序算法。它的基本思想是,在未排序的序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。...