Java-数组排序

1、冒泡排序

如果数组长度为n,则比较n-1轮,共n*(n-1)/2次

注释:代码中i的值表示轮数,j的值表示次数;

2、Python实现冒泡排序

array = [1,2,3,6,5,4]
for i in range(len(array)):
    for j in range(i):
        if array[j] > array[j + 1]:
            array[j], array[j + 1] = array[j + 1], array[j]
print array

3、选择排序【数组长度为N时,循环N-1轮】

4、二分法查找算法【折半查找算法】,在数组中查询某个元素,前提是该数组已经排序

算法:

int[] arr = {1,5,9,12,16,56,89,99};

int begin = 0;

int end = 7;

int mid = (begin + end) / 2

mid =3;

arr[3]<56;

begin = mid + 1;

end = 7;

mid = 5;

arr[5]=56;

时间: 2024-08-05 07:06:17

Java-数组排序的相关文章

Java数组排序

Java数组排序Arrays.sort,以及Comparator接口的用法 有的时候需要对数组里的element进行排序.当然可以自己编写合适的排序方法,但既然java包里有自带的Arrays.sort排序方法,在 数组元素比较少的时候为何不用? Sorting an Array 1. 数字排序  int[] intArray = new int[] { 4, 1, 3, -23 }; Arrays.sort(intArray); 输出: [-23, 1, 3, 4] 2. 字符串排序,先大写后

java数组排序(冒泡、直排)反转

package lianxi; public class maopao { public static void main(String[] args){ int[] i=new int[]{45,67,54,35,26,76,85}; for(int a=0;a<i.length;a++){ for(int b=0;b<i.length;b++){ if(i[a]<i[b]){ int temp=i[a]; i[a]=i[b]; i[b]=temp; } } }go(i); } pub

Java数组排序和插入

如何排序数组并插入元素? 以下示例显示如何使用sort()方法和用户定义的insertElement()方法来完成此任务. package com.yiibai; import java.util.*; public class ArraySortAndInsert { public static void main(String args[]) throws Exception { int array[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 }; Arra

java数组排序,二分查找

public static void main(String[] args) { int[] a = { 5, 1, 10, 3, 8, 0 }; for (int i = 0; i < selectionSort(a).length; i++) { System.out.println(selectionSort(a)[i]); } System.out.println("-------------------------"); for (int i = 0; i < b

Java数组排序算法之直接选择排序

1.基本思想 直接选择排序的基本思想是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值,注意这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换. 与冒泡排序相比,直接选择排序的交换次数要少很多,因此速度更快些. 2.算法示例 每一趟从待排序的数组元素中选出最小(或最大)的一个元素,顺序的放在已排好序的数组元素前或后,直到全部待排序的数据元素排完. 例如有一个6个元素的数组[63 4 24 1 3 15],排序大致过程如下所述: 第1轮排序:63和15交换位

java 数组排序 插入排序法

插入排序法思想:将n个数字分为前面几个是有序数字集合,后面几个为无序集合.当然尚未排序之前,可以将n0 看为有序数集合,N1-Nn-1 看为等待排序的无序集合.从N1开始将无序数一个一个插入到有序数集合中,使之再次成为有序数集合,当第Nn-1 个数字插入有序数集合中后.整个n数字集合便成为有序集合. 示例:2,1,8,9,6,3,4,7,5 第一步排序后结果:1,2,8,9,6,3,4,7,5 第二步排序后结果:1,2,8,9,6,3,4,7,5 第三步排序后结果:1,2,8,9,6,3,4,7

java 数组操作实例

对于任何编程语言,数组都是必须掌握的知识点,本文章向大家介绍java数组的一些操作实例.感兴趣的朋友可以参考一下. Java数组排序及元素查找 Java数组添加元素 Java获取数组长度 Java数组反转 Java数组输出 Java数组获取最大和最小值 Java数组合并 Java数组填充 Java数组扩容 Java数组排序及查找 Java删除数组元素 Java数组差集 Java数组交集 Java在数组中查找指定元素 Java判断数组是否相等 Java数组并集

【Java】Java中的Collections类——Java中升级版的数据结构【转】

一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*;   一.动态.有序.可变大小的一维数组Vector与ArrayList Collecti

【Java】Java中的Collections类——Java中升级版的数据结构

一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*; 一.动态.有序.可变大小的一维数组Vector与ArrayList Collection

Java架构师之路:从Java码农到年薪八十万的架构师,最牛Java架构师进阶路线

从Java码农到年薪八十万的架构师,资深架构师大牛给予Java技术提升学习路线建议,如何成为一名资深Java架构师? 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择.架构师在一家公司有多重要.优秀架构师需要具备怎样的素质以及架构师的发展现状三个方面来分析 程序员如何才能晋升为优秀的高薪架构师? 希望通过本文让程序员们了解架构师的市场行情,了解架构师的发展前景,并帮助你更清晰地做出职业规划. 架构师在一家公司有多重要 架构师在公司中担当着「IT架构灵魂人物